The index directory location is being created inside the current working directory. We should change that. I've opened SOLR-604 and attached a patch which fixes this.
I'm still not sure into why FileBasedSpellChecker is not working for you. On Sun, Jun 22, 2008 at 2:58 AM, Ronald K. Braun <[EMAIL PROTECTED]> wrote: > I'm playing with the new code checked in under SOLR-572 (compliments > to everyone who worked on that!) and am having a couple of problems. > I'm running on Windows under Tomcat 5.5.25. > > 1. Just in comparison with the old SpellCheckerRequestHandler > methodology, when I specified in solrconfig.xml > > <str name="sp.dictionary.indexDir">spell</str> > > it built the spelling index under my solr/data directory as > c:/solr/data/spell. My solr home is configured in server.xml for > tomcat via: > > <Context ... <Environment name="solr/home" type="java.lang.String" > value="C:/solr" override="true" /> </Context> > > Under the new handler, setting the analogous (I think) parameter > > <str name="spellcheckIndexDir">spell</str> > > drops the spell index directory in my tomcat install directory > C:/Program Files/Apache Software Foundation/Tomcat 5.5/spell rather > than my solr/data. Should I configure my solr/home differently or can > this be made to work as before? The previous solr/data default on an > unqualified parameter value was a good one for keeping the index files > in the same location. > > 2. I'm having difficulty getting the FileBasedSpellChecker to work -- > probably something silly on my part but given the above I thought > there might be container differences that haven't been vetted. Here > is my config: > > <searchComponent name="spellcheck" > class="org.apache.solr.handler.component.SpellCheckComponent"> > <lst name="defaults"> > <!-- omp = Only More Popular --> > <str name="spellcheck.onlyMorePopular">false</str> > <!-- exr = Extended Results --> > <str name="spellcheck.extendedResults">false</str> > <!-- The number of suggestions to return --> > <str name="spellcheck.count">1</str> > </lst> > <str name="queryAnalyzerFieldType">spell</str> > > <lst name="spellchecker"> > <str name="name">default</str> > <str name="field">dictionary</str> > <str > name="classname">org.apache.solr.spelling.IndexBasedSpellChecker</str> > <str name="spellcheckIndexDir">spellchecker</str> > </lst> > > <lst name="spellchecker"> > <str > name="classname">org.apache.solr.spelling.FileBasedSpellChecker</str> > <str name="name">external</str> > <str name="sourceLocation">spellings.txt</str> > <str name="characterEncoding">UTF-8</str> > <str name="spellcheckIndexDir">spellchecker2</str> > </lst> > </searchComponent> > > <queryConverter name="queryConverter" > class="org.apache.solr.spelling.SpellingQueryConverter"/> > > <requestHandler name="/spellCheckCompRH" > class="org.apache.solr.handler.component.SearchHandler"> > <arr name="last-components"> > <str>spellcheck</str> > </arr> > </requestHandler> > > spellings.txt contains: > > pizza > history > > > http://localhost/solr/spellCheckCompRH?spellcheck=true&q=pizzza&spellcheck.dictionary=default&spellcheck.build=true > gives me a suggestion of pizza, works wonderfully. > > > http://localhost/solr/spellCheckCompRH?spellcheck=true&q=pizzza&spellcheck.dictionary=external&spellcheck.build=true > gives me no suggestions. (Even with a more fleshed out dictionary > file, I haven't been able to get suggestions for any query I've tried > for the external dictionary.) > > In both cases I can see the indexes getting rebuilt, and the size of > external index varies with the size of my spellings.txt, so I know > that the contents of spellings.txt is getting indexed (and peeking > into the segment files, I see the text entries). It is as if > everything is getting set up correctly but the actual index is coming > up empty at query time. > > Any suggestions for what I might be doing wrong? > > Thanks! > > Ron > -- Regards, Shalin Shekhar Mangar.