There are 2 parameters you want to consider:

First is "spellcheck.maxResultsForSuggest".  Because you have an "OR" query, 
you'll get hits if only 1 query term is in the index.  This parameter lets you 
tune it to make it suggest if the query returns n or fewer hits.  My memory 
tells me, however, that if you leave this parameter out entirely, it will still 
return suggestions for "OR" queries with some misspelled words (false memory on 
my part?).  Possibly you have this set to 1?  Omitting it might be a better 
option.  See 
http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.maxResultsForSuggest 
.

Second is "collateParam", which lets you override certain query parameters when 
the spellchecker is testing collations against the index.  For instance, if you 
have "q.op=OR", the spellchecker will return collations that possibly only have 
1 correct term.  The reason is it simply checks if a collation will return any 
hits.  So you can overide this with "spellcheck.collateParam.q.op=AND".  The 
same can be done for "mm" if using edismax.  See 
http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collateParam.XX .

James Dyer
Ingram Content Group
(615) 213-4311

-----Original Message-----
From: Daniel Borup [mailto:d...@alpha-solutions.dk] 
Sent: Monday, November 11, 2013 7:38 AM
To: solr-user@lucene.apache.org
Subject: spellcheck solr 4.3.1

Hey

I am running af solr 4.3.1 and working is implementing spellcheck using 
solr.DirectSolrSpellChecker everything seems to be working  fine but at have 
one issue.

If I search for
http://localhost:8765/solr/MainIndex/spell?q=kim%20AND%20larsen

the result is some hits and the spell component return the following structure.

<lst name="spellcheck">
<lst name="suggestions">
<bool name="correctlySpelled">true</bool>
</lst>
</lst>
I would have liked that if some suggest were found they were return....

If I do a search for
http://localhost:8765/solr/MainIndex/spell?q=kim%20AND%20larsenn

with larsen spelled wrong (larsenn) the spell component return the following:

<lst name="spellcheck">
<lst name="suggestions">
<lst name="larsenn">
<int name="numFound">1</int>
<int name="startOffset">8</int>
<int name="endOffset">15</int>
<int name="origFreq">0</int>
<arr name="suggestion">
<lst>
<str name="word">larsen</str>
<int name="freq">12</int>
</lst>
</arr>
</lst>
<bool name="correctlySpelled">false</bool>
<lst name="collation">
<str name="collationQuery">kim AND larsen</str>
<int name="hits">12</int>
<lst name="misspellingsAndCorrections">
<str name="kim">kim</str>
<str name="larsenn">larsen</str>
</lst>
</lst>
</lst>
</lst>

In my point of view this is correct but, if I do the same search as above just 
as an OR search http://localhost:8765/solr/MainIndex/spell?q=kim%20OR%20larsenn
The spell component return some result and:

<lst name="spellcheck">
<lst name="suggestions">
<bool name="correctlySpelled">true</bool>
</lst>
</lst>

larsenn now is spelled corrected according to solr, I cannot understand this 
behavior. Is there a setting to adjust the spell component so it always return 
suggestions ? or a way to have suggest in OR search with one wrong word working?






Med venlig hilsen / Best regards

Daniel Borup
Tel: (+45) 28 87 69 18
E-mail: d...@alpha-solutions.dk<mailto:d...@alpha-solutions.dk>

Alpha Solutions A/S
Sølvgade 10, 1.sal, DK-1307 Copenhagen K
Tel: (+45) 70 20 65 38
Web: www.alpha-solutions.dk<http://www.alpha-solutions.dk/>


** This message including any attachments may contain confidential and/or 
privileged information
intended only for the person or entity to which it is addressed. If you are not 
the intended recipient
you should delete this message. Any printing, copying, distribution or other 
use of this message is strictly prohibited.
If you have received this message in error, please notify the sender 
immediately by telephone
or e-mail and delete all copies of this message and any attachments from your 
system. Thank you.

Reply via email to