After correcting some stupid mistakes, and adding all the parameters I
have compiled from every example I found googling around, I have this
configuration:
<str name="name">mySuggester</str>
<str
name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str
name="lookupImpl">org.apache.solr.spelling.suggest.jaspell.JaspellLookupFactory</str>
<str name="field">spellchk</str>
<float name="accuracy">0.1</float>
<float name="threshold">0.0</float>
<str name="storeDir">suggest</str>
<str name="buildOnOptimize">true</str>
<str name="buildOnStartup">true</str>
However, still no fuzzy suggestions :-(
Any ideas?
Thanks in advance!!
El 03/04/2016 a las 11:47, Fundera Developer escribió:
Following on this, I have been able to make Solr load correctly by
replacing the line in the solrconfig.xml:
<str name="lookupImpl">JaspellLookupFactory</str>
with the fully qualified class name:
<str
name="lookupImpl">org.apache.solr.spelling.suggest.jaspell.JaspellLookupFactory</str>
and now I can, as I said, start Solr, build the suggestions and run
them. However, I am still getting nothing "fuzzy". If I query with
"managem", I get several suggestions ("management" among them), but
trying with "managm" or "manahem" does not provide any suggestions,
even if I configure the accuracy parameter as low as 0.5 (and reindex,
of course).
Am I doing something wrong? Is there any better alternative to getting
fuzzy suggestions?
Thanks in advance!!
El 02/04/2016 a las 20:27, Fundera Developer escribió:
Hi all,
At present I am providing suggestions in my app with this
configuration in my solrconfig.xml:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">WFSTLookupFactory</str>
<str name="field">spellchk</str>
<float name="threshold">0.005</float>
<str name="buildOnOptimize">true</str>
<str name="buildOnStartup">true</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler"
startup="lazy" >
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.dictionary">mySuggester</str>
<str name="suggest.count">5</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
However, I would like to provide fuzzy suggestions, so that if the
user types "managme", I can suggest "management". Based on the
documentation I found on the wiki and googling, I tried with this
configuration:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">JaspellLookupFactory</str>
<str name="field">spellchk</str>
<str name="accuracy">0.6</str>
<str name="buildOnOptimize">true</str>
<str name="buildOnStartup">true</str>
</lst>
</searchComponent>
But if I start my Solr instance with that configuration, I get this
error in the log:
2016-04-02 18:24:26.018 ERROR (coreLoadExecutor-6-thread-1) [
x:funderatenders] o.a.s.c.CoreContainer Error creating core [myapp]:
Error loading class 'JaspellLookupFactory'
org.apache.solr.common.SolrException: Error loading class
'JaspellLookupFactory'
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:820)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:658)
at
org.apache.solr.core.CoreContainer.create(CoreContainer.java:814)
at
org.apache.solr.core.CoreContainer.access$000(CoreContainer.java:87)
at
org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:467)
at
org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:458)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:231)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
What is the correct way to use and configure the
JaspellLookupFactory, or where can I find documentation on it?
Thanks in advance!