Thanks Otis but that's not an option for me. "Should" be pretty easy to do this with Solr, I will still continue to work on it.
Great William I will give a try with this method, thanks. On 28 March 2012 06:11, William Bell <billnb...@gmail.com> wrote: > I am also very confused at the use case for the Suggester component. > With collate on, it will try to combine random words together not the > actual phrases that are there. > > I get better mileage out of EDGE grams and tokenize on whitespace... > Left to right... Since that is how most people think. > > However, I would like Suggester to work as follows: > > Index: > Chris Smith > Tony Dawson > Chris Leaf > Daddy Golucky > > Query: > 1. "Chris" it returns "Chris Leaf" but not both Chris Smith and Chris Leaf. > 2. I seem to get collated (take first work and combine with second > word). SO I would see things like "Smith Leaf".... Very strange and > not what we expect. These are formal names. > > When I use Ngrams.... I can index: > > C > Ch > Chr > Chri > Chris > S > Sm > Smi > Smit > Smith > > Thus if I search on "Smi" it will match Chris Smith and also Chris > Leaf. Exactly what I want. > > > > > On Tue, Mar 27, 2012 at 11:05 AM, Rémy Loubradou <r...@hipsnip.com> wrote: > > Hello, I am working on creating a auto-complete functionality for my > field > > merchant_name present all over my documents. I am using the version 3.4 > of > > Solr and I am trying to take advantage of the Suggester functionality. > > Unfortunately so far I didn't figure out how to make it works as I > > expected. > > > > If my list of merchants present in my documents is:(my real list is > bigger > > than the following list, that's the reason why I don't use dictionnary > and > > also because it will change often.) > > Redoute > > Suisse Trois > > Conforama > > But > > Cult Beauty > > Brother Trois > > > > I expect from the Suggester component to match words or part of them and > > return phrases where words or part of them have been matched. > > for example with /suggest?q=tro, I would like to get this: > > > > <response> > > <lst name="responseHeader"> > > <int name="status">0</int> > > <int name="QTime">0</int> > > </lst> > > <lst name="spellcheck"> > > <lst name="suggestions"> > > <lst name="tro"> > > <int name="numFound">2</int> > > <int name="startOffset">0</int> > > <int name="endOffset">x</int> > > <arr name="suggestion"> > > <str>Bother Trois</str> > > <str>Suisse Trois</str> > > </arr> > > </lst> > > </lst> > > </lst> > > </response> > > > > I experimented suggestion on a field configured with the tokenizer > > "solr.KeywordTokenizerFactory" or "solr.WhitespaceTokenizerFactory". > > In my mind I have to find a way to handle 3 cases: > > /suggest?q=bo ->(should return) bother trois > > /suggest?q=tro ->(should return) bother trois, suisse trois > > /suggest?q=bo%20tro ->(should return) bother trois > > > > With the "solr.KeywordTokenizerFactory" I get: > > /suggest?q=bo -> bother trois > > /suggest?q=tro -> "nothing" > > /suggest?q=bo%20tro -> "nothing" > > > > With the "solr.WhitespaceTokenizerFactory" I get: > > /suggest?q=bo -> bother > > /suggest?q=troi -> trois > > /suggest?q=bo%20tro -> bother, trois > > > > Not exactly what I want ... :( > > > > My configuration in the file solrconfig.xml for the suggester component: > > > > <searchComponent class="solr.SpellCheckComponent" name="suggestMerchant"> > > <lst name="spellchecker"> > > <str name="name">suggestMerchant</str> > > <str > name="classname">org.apache.solr.spelling.suggest.Suggester</str> > > <str > > name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookup</str> > > <!-- Alternatives to lookupImpl: > > org.apache.solr.spelling.suggest.fst.FSTLookup [finite state > > automaton] > > org.apache.solr.spelling.suggest.fst.WFSTLookupFactory > [weighted > > finite state automaton] > > org.apache.solr.spelling.suggest.jaspell.JaspellLookup > [default, > > jaspell-based] > > org.apache.solr.spelling.suggest.tst.TSTLookup [ternary > trees] > > --> > > <str name="field">merchant_name_autocomplete</str> <!-- the indexed > > field to derive suggestions from --> > > <float name="threshold">0.0</float> > > <str name="buildOnCommit">true</str> > > <!-- > > <str name="sourceLocation">american-english</str> > > --> > > </lst> > > </searchComponent> > > <requestHandler class="org.apache.solr.handler.component.SearchHandler" > > name="/suggest/merchant"> > > <lst name="defaults"> > > <str name="spellcheck">true</str> > > <str name="spellcheck.dictionary">suggestMerchant</str> > > <str name="spellcheck.onlyMorePopular">true</str> > > <str name="spellcheck.count">10</str> > > <str name="spellcheck.collate">true</str> > > <int name="spellcheck.maxCollations">10</int> > > </lst> > > <arr name="components"> > > <str>suggestMerchant</str> > > </arr> > > </requestHandler> > > > > How can I implement autocomplete with the Suggester component to get > what I > > expect? Thanks for your help, I really appreciate. > > > > -- > Bill Bell > billnb...@gmail.com > cell 720-256-8076 >