[
https://issues.apache.org/jira/browse/SOLR-3608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13409591#comment-13409591
]
James Dyer commented on SOLR-3608:
----------------------------------
It looks like you're using shingles to try to get it to correct whole phrases,
right? I'm curious if you've written a custom QueryConverter to handle this,
or if you use "spellcheck.q" to bypass using a QueryConverter at all. But in
the end, I think its safe to say that the collation feature won't work well
with a shingle dictionary.
You might be able to get it to do what you want without using shingles...Have
you looked at the "maxCollationTries" parameter? (see
http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.maxCollationTries).
Also, if you need it to correct word-break misspellings take a look at
SOLR-2993, which is included in Solr4.0-Alpha.
Even if you're using shingles, I do think we should do something to fix this.
At the least it should fail gracefully and not throw AIOOB. On the other hand
the case involving shingles is more of a "minor" bug. Certainly not a
"blocker", which means it needs to be fixed or it would hold up the next
release. Agree?
> Spellcecker: String index out of range: -1
> ------------------------------------------
>
> Key: SOLR-3608
> URL: https://issues.apache.org/jira/browse/SOLR-3608
> Project: Solr
> Issue Type: Bug
> Components: spellchecker
> Affects Versions: 3.6
> Environment: Ubuntu 11.10 x64
> java version "1.7.0_05"
> Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
> Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
> Reporter: dalius
> Priority: Blocker
>
> Spell check component throws StringIndexOutOfBoundsException on multiterm
> search.
> Stack trace:
> {code}
> SEVERE: java.lang.StringIndexOutOfBoundsException: String index out of range:
> -1
> at
> java.lang.AbstractStringBuilder.replace(AbstractStringBuilder.java:789)
> at java.lang.StringBuilder.replace(StringBuilder.java:266)
> at
> org.apache.solr.spelling.SpellCheckCollator.getCollation(SpellCheckCollator.java:128)
> at
> org.apache.solr.spelling.SpellCheckCollator.collate(SpellCheckCollator.java:69)
> at
> org.apache.solr.handler.component.SpellCheckComponent.addCollationsToResponse(SpellCheckComponent.java:179)
> at
> org.apache.solr.handler.component.SpellCheckComponent.process(SpellCheckComponent.java:156)
> at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:186)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
> ...
> {code}
> I have dug some debug info at org.apache.solr.spelling.SpellCheckCollator:69
> {code}
> String collationQueryStr = getCollation(originalQuery,
> possibility.getCorrections());
> {code}
> originalQuery is "casa saja"
> possibility is "rank=0 casa>cal (-1) saja>sala (-1) casa
> saja>casa de (-1)"
> The replace function fails on 3rd correction "casa saja>casa de (-1)". I hope
> this makes any sense.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]