[
https://issues.apache.org/jira/browse/SOLR-6271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14366989#comment-14366989
]
Mikolaj Kania commented on SOLR-6271:
-------------------------------------
This is especially a problem when you want to use DirectSolrSpellChecker with
FileBasedSpellChecker. What make things interesting is that
WordBreakSpellChecker works fine beacuse its getStringDistance() method throws
UnsupportedOperationException, and in ConjunctionSolrSpellChecker there is that
pretty smelly work-around for this:
{code}
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
}
{code}
> ConjunctionSolrSpellChecker wrong check for same string distance
> ----------------------------------------------------------------
>
> Key: SOLR-6271
> URL: https://issues.apache.org/jira/browse/SOLR-6271
> Project: Solr
> Issue Type: Bug
> Components: spellchecker
> Affects Versions: 4.9
> Reporter: Igor Kostromin
>
> 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.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]