[ 
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]

Reply via email to