[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16437511#comment-16437511 ] ASF subversion and git services commented on SOLR-10513: Commit 6d771dcc9f0c6cbb33b1b5cf6c60f126713d9555 in lucene-solr's branch refs/heads/branch_7x from jdyer1 [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=6d771dc ] SOLR-10513: Implement .equals() for LuceneLevenshteinDistance. > 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: 7.4 > > Attachments: SOLR-10513.patch, SOLR-10513.patch, SOLR-10513.patch, > SOLR-10513.patch, SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16437504#comment-16437504 ] ASF subversion and git services commented on SOLR-10513: Commit 12bd5f9448f70b9fdc450dac916dbd1a83edafbc in lucene-solr's branch refs/heads/master from jdyer1 [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=12bd5f9 ] SOLR-10513: Implement .equals() for LuceneLevenshteinDistance. > 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: 7.4 > > Attachments: SOLR-10513.patch, SOLR-10513.patch, SOLR-10513.patch, > SOLR-10513.patch, SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16436080#comment-16436080 ] Amrit Sarkar commented on SOLR-10513: - bq. will just checking for the StringDistance properly solve your problem? It does and I agree with you. It is therefore another conversation I guess we can have on a seperate jira of extending CSSC capabilities. But will appreciate if at least we can get this into master, we can still work it out by using other {{distanceMeasure}} available. > 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, SOLR-10513.patch, > SOLR-10513.patch, SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16427580#comment-16427580 ] James Dyer commented on SOLR-10513: --- [~sarkaramr...@gmail.com], will just checking for the StringDistance properly solve your problem? If so, I think we should limit to this. Beyond this simple fix, we likely need to re-think how we configure CSSC as suggested by [~varunthacker]. CSSC was put here to allow you to use WordBreakSolrSpellChecker with another spell checker, and as WBSSC does not use its own Analyzer, these checks are moot. But I can see the use of expanding this to let you have any combinations of spell checkers, its just not robust enough to handle that as it exists now. > 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, SOLR-10513.patch, > SOLR-10513.patch, SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16427507#comment-16427507 ] Amrit Sarkar commented on SOLR-10513: - [~jdyer], thank you for the updated one. In the prior patches I have included the included you have with the latest, along with verifying {{Analyzer}} and {{Accuracy}}. I also validate the correctness of CSSC in {{SpellCheckCollatorTest}}. If you think we should open a new jira to add those correctness-tests, let me know I will do the same. > 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, SOLR-10513.patch, > SOLR-10513.patch, SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16427495#comment-16427495 ] James Dyer commented on SOLR-10513: --- See my version of the patch. This also adds an "equals" method to LuceneLevenshteinDistance and improves the test to check that known StringDistance's implement "equals" and behave properly with CSSC. This is a bit less of a change than prior patches. If this is deemed adequate, I can commit this soon. > 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, SOLR-10513.patch, > SOLR-10513.patch, SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16419199#comment-16419199 ] Amrit Sarkar commented on SOLR-10513: - Final patch uploaded, with proper comments, {{ant precommit}} is not working on my system some random JARs not found. Tests added based on recommendation, > 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, SOLR-10513.patch, > SOLR-10513.patch, 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16412135#comment-16412135 ] James Dyer commented on SOLR-10513: --- Although I am away until w/o April 2, I might be able to help later on with this. My memory here is ConjunctionSpellChecker initially only worked for adding the WordBreakSpellchecker in with DirectSpellChecker. At the time, I thought a nice enhancement would eventually allow you to combine any spell checkers you wanted, say if you had multiple fields on a "qf" parameter, and you wanted individual spellcheckers for each. I am not so sure such general usage is possible at this time. > 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16412129#comment-16412129 ] Varun Thacker commented on SOLR-10513: -- {quote}Like {{LevenshteinDistance}}. We want to prove here that A,A,B {{StringDistance}} type will not go with each other, where A and B can be arbitrary. If we are verifying LuceneLevenshteinDistance of one spellchecker should match with other, it shouldn't with non-LuceneLevenshteinDistance stringDistance. {quote} 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 > 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16412114#comment-16412114 ] Amrit Sarkar commented on SOLR-10513: - [~varunthacker]: thank you for the feedback. bq. The test doesn't need to add a third spell checker and also should probably implement toString in LuceneLevenshteinDistance ? Like {{LevenshteinDistance}}. We want to prove here that A,A,B {{StringDistance}} type will not go with each other, where A and B can be arbitrary, that's why. If we are verifying LuceneLevenshteinDistance of one spellchecker should match with other, it shouldn't with non-LuceneLevenshteinDistance stringDistance. bq. This should be an init failure and not during a query. Maybe ConjunctionSolrSpellChecker could have a constructor that takes a stringDistance and accuracy and avoids all these checks? Let's spin that off in other Jira and discuss there. bq. Also while we're working on this patch can we validate the accuracy/queryAnalyzer checks works as expected and have a test for that? For both these points we need to extend / improve / diversify the ConjunctionSolrSpellCheckerTest which has MockSpellCheckers now. We can discuss. P.S. forgot, thank Abhishek, you analysis solved the problem anyway. > 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16411954#comment-16411954 ] Varun Thacker commented on SOLR-10513: -- Thanks Amrit for the patch and Abhishek for the analysis! If I understand this correctly there are 2 issues here: Issue1: If you add 2 spellcheckers and both are configured with LuceneLevenshteinDistance then an exception will be thrown but it shouldn't. This is because the equals method has not been overriden. So this will fail. The test doesn't need to add a third spell checker and also should probably implement toString in LuceneLevenshteinDistance ? {code:java} cssc = new ConjunctionSolrSpellChecker(); levenstein1 = new MockSolrSpellChecker(new LuceneLevenshteinDistance()); levenstein2 = new MockSolrSpellChecker(new LuceneLevenshteinDistance()); cssc.addChecker(levenstein1); cssc.addChecker(levenstein2); {code} Issue2: This should be an init failure and not during a query. Maybe ConjunctionSolrSpellChecker could have a constructor that takes a stringDistance and accuracy and avoids all these checks? Let's spin that off in other Jira and discuss there. Also while we're working on this patch can we validate the accuracy/queryAnalyzer checks works as expected and have a test for that? > 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16411582#comment-16411582 ] Amrit Sarkar commented on SOLR-10513: - Test added, patch updated. Awaiting feedback. > 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16409825#comment-16409825 ] Amrit Sarkar commented on SOLR-10513: - We faced the same issue for the configuring multiple spell checkers, {{FileBasedSolrSpellChecker}} specifically. Uploaded patch, tests awaited. > 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 > > > 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
[jira] [Commented] (SOLR-10513) CLONE - ConjunctionSolrSpellChecker wrong check for same string distance
[ https://issues.apache.org/jira/browse/SOLR-10513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15972987#comment-15972987 ] Abhishek Kumar Singh commented on SOLR-10513: - 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* . > 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 > Fix For: 5.5 > > > 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. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org