right. File-based suggestions should be much faster to build, but it's certainly the case with large indexes that you have to build it periodically so they won't be completely up to date.
However, this stuff is way cool. AnalyzingInfixSuggester, for instance, suggests entire fields rather than isolated words, returning the original case, punctuation etc. The index-based spellcheck/suggest just reads terms from the indexed fields which takes no time to build but suffers from reading _indexed_ terms, i.e. terms that have gone through the analysis process that may have been stemmed, lowercased, all that. On Thu, May 21, 2015 at 9:03 AM, jon kerling <jonkerl...@yahoo.com.invalid> wrote: > Hi Erick, > I have read your blog and it is really helpful.I'm thinking about upgrading > to Solr 5.1 but it won't solve all my problems with this issue, as you said > each build will have to read all docs, and analyze it's fields. The only > advantage is that I can skip default suggest.build on start up. > Thank you for your reply. > Jon Kerling. > > > > On Thursday, May 21, 2015 6:38 PM, Erick Erickson > <erickerick...@gmail.com> wrote: > > > Frankly, the suggester is rather broken in Solr 4.x with large > indexes. Building the suggester index (or FST) requires that _all_ the > docs get read, the stored fields analyzed and added to the suggester. > Unfortunately, this happens _every_ time you start Solr and can take > many minutes whether or not you have buildOnStartup set to false, see: > https://issues.apache.org/jira/browse/SOLR-6845. > > See: http://lucidworks.com/blog/solr-suggester/ > > See inline. > > On Thu, May 21, 2015 at 6:12 AM, jon kerling > <jonkerl...@yahoo.com.invalid> wrote: >> Hi, >> >> I'm using solr 4.10 and I'm trying to add autosuggest ability to my >> application. >> I'm currently using this kind of configuration: >> >> <searchComponent name="suggest" class="solr.SuggestComponent"> >> <lst name="suggester"> >> <str name="name">mySuggester</str> >> <str name="lookupImpl">FuzzyLookupFactory</str> >> <str name="storeDir">suggester_fuzzy_dir</str> >> <str name="dictionaryImpl">DocumentDictionaryFactory</str> >> <str name="field">field2</str> >> <str name="weightField">weightField</str> >> <str name="suggestAnalyzerFieldType">text_general</str> >> </lst> >> </searchComponent> >> >> <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy"> >> <lst name="defaults"> >> <str name="suggest">true</str> >> <str name="suggest.count">10</str> >> <str name="suggest.dictionary">mySuggester</str> >> </lst> >> <arr name="components"> >> <str>suggest</str> >> </arr> >> </requestHandler> >> >> I wanted to know how the suggester Index/file is being rebuilt. >> Is it suppose to have all the terms of the desired field in the suggester? > Yes. >> if not, is it related to this kind of lookup implementation? >> if I'll use other lookup implementation which suggest also infix terms of >> fields, >> doesn't it has to hold all terms of the field? > Yes. >> >> When i call suggest.build, does it build from scratch the suggester >> Index/file, >> or is it just doing something like sort of "delta" indexing suggestions? > Builds from scratch >> >> Thank You, >> Jon > > >