lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Dyer (JIRA)" <>
Subject [jira] [Commented] (SOLR-3608) Spellcecker: String index out of range: -1
Date Mon, 09 Jul 2012 16:01:35 GMT


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
 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:
>             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(
> 	at java.lang.StringBuilder.replace(
> 	at org.apache.solr.spelling.SpellCheckCollator.getCollation(
> 	at org.apache.solr.spelling.SpellCheckCollator.collate(
> 	at org.apache.solr.handler.component.SpellCheckComponent.addCollationsToResponse(
> 	at org.apache.solr.handler.component.SpellCheckComponent.process(
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(
> 	at org.apache.solr.core.SolrCore.execute(
> ...
> {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:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message