lucene-dev mailing list archives

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

    [ 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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message