Alejandro,

Assuming you're using Solr 3.x, under:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
 <lst name="spellchecker">
 ...
 </lst>
</searchComponent>

...you can add:

<str name="spellcheckIndexDir">./spellchecker</str>

...then the spell check index will be created on-disk and not in memory.

But in Solr 4.0, the default spellcheck implementation changed to 
org.apache.solr.spelling.DirectSolrSpellChecker, which does not create a 
separate index for for spellchecking, "build" does nothing, and you need not 
worry at all about these things.  The wiki still says "experimental" here but 
that is woefully out-of-date.

James Dyer
Ingram Content Group
(615) 213-4311


-----Original Message-----
From: Alejandro Marqués Rodríguez [mailto:amarq...@paradigmatecnologico.com] 
Sent: Wednesday, February 05, 2014 3:41 AM
To: solr-user@lucene.apache.org
Subject: Volatile spellcheck index

Hi,

I'm having a problem with the spell check index building. I've configured
the spell checker component to have the index built on optimize.

*  <!-- Spell Check http://wiki.apache.org/solr/SpellCheckComponent
<http://wiki.apache.org/solr/SpellCheckComponent> -->*
*  <searchComponent name="spellcheck" class="solr.SpellCheckComponent">*
*  <str name="queryAnalyzerFieldType">spell</str>*

*  <lst name="spellchecker">*
*      <str name="name">spellchecker</str>*
*      <str name="field">spell</str>*
*      <str name="accuracy">0.7</str>*
*      <str name="buildOnOptimize">true</str>*
*  </lst>*
*  </searchComponent>*

*  <!-- A request handler for demonstrating the spellcheck component.
http://wiki.apache.org/solr/SpellCheckComponent
<http://wiki.apache.org/solr/SpellCheckComponent> for details -->*
*  <requestHandler name="/spell" class="solr.SearchHandler">*
*    <lst name="defaults">      *
*      <str name="spellcheck.dictionary">spellchecker</str>*
*      <str name="spellcheck">on</str>*
*      <str name="spellcheck.onlyMorePopular">false</str>*
*      <str name="spellcheck.extendedResults">false</str>*
*      <str name="spellcheck.count">1</str>*
*    </lst>*
*    <arr name="last-components">*
*      <str>spellcheck</str>*
*    </arr>*
*  </requestHandler>*

After the index process I launch an optimize request and the spellcheck
index is generated and everything is working fine. However, if I restart
Solr the spell check is not working anymore until I execute another
optimize request.

So, is this the expected way of working? Is the spell check index deleted
after every server restart? Is there any way to make it persistent?

And just one more question, I remember in previous Solr versions the
spellcheck had even its own folder under the data folder, so, for example I
could see if the spell check index had been generated just listing the
files under that folder. Does that folder still exist? Is there any way of
knowing if the spell check index has been generated without executing a
query that is supposed to return a correction?

Thanks in advance




-- 
Alejandro Marqués Rodríguez

Paradigma Tecnológico
http://www.paradigmatecnologico.com
Avenida de Europa, 26. Ática 5. 3ª Planta
28224 Pozuelo de Alarcón
Tel.: 91 352 59 42

Reply via email to