[ 
https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16412175#comment-16412175
 ] 

Amrit Sarkar commented on SOLR-10513:
-------------------------------------

bq. But today if we add two spell checkers both with LuceneLevenshteinDistance 
then ConjunctionSolrSpellChecker will fail. That's the Jira title and the fix 
but the test adds a third spell checker which makes it confusing as to what are 
we really testing 

Makes sense. But since in the patch, we are overriding the {{equals}} method of 
a class, we should test both assertions, equal and not equal, that was the 
motivation behind the test.

 [~jdyer] if I remember correctly, Abhishek was working on something similar, I 
will try to track down the jira.

> CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
> ------------------------------------------------------------------------
>
>                 Key: SOLR-10513
>                 URL: https://issues.apache.org/jira/browse/SOLR-10513
>             Project: Solr
>          Issue Type: Bug
>          Components: spellchecker
>    Affects Versions: 4.9
>            Reporter: Abhishek Kumar Singh
>            Assignee: James Dyer
>            Priority: Major
>             Fix For: 5.5
>
>         Attachments: SOLR-10513.patch, SOLR-10513.patch
>
>
> See ConjunctionSolrSpellChecker.java
> try {
>       if (stringDistance == null) {
>         stringDistance = checker.getStringDistance();
>       } else if (stringDistance != checker.getStringDistance()) {
>         throw new IllegalArgumentException(
>             "All checkers need to use the same StringDistance.");
>       }
>     } catch (UnsupportedOperationException uoe) {
>       // ignore
>     }
> In line stringDistance != checker.getStringDistance() there is comparing by 
> references. So if you are using 2 or more spellcheckers with same distance 
> algorithm, exception will be thrown anyway.
> *Update:* As of Solr 6.5, this has been changed to 
> *stringDistance.equals(checker.getStringDistance())* .
> However, *LuceneLevenshteinDistance* does not even override equals method. 
> This does not solve the problem yet, because the *default equals* method 
> anyway compares references.
> Hence unable to use *FileBasedSolrSpellChecker* .  
> Moreover, Some check of similar sorts should also be in the init method. So 
> that user does not have to wait for this error during query time. If the 
> spellcheck components have been added *solrconfig.xml* , it should throw 
> error during core-reload itself.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to