[ 
https://issues.apache.org/jira/browse/SOLR-3608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13409651#comment-13409651
 ] 

James Dyer commented on SOLR-3608:
----------------------------------

>From solrconfig.xml, can you paste here what you've got in this block:
 <searchComponent name="..." class="solr.SpellCheckComponent" />
And also this block, if it exists:
 <queryConverter />
?

Also, can you set "spellcheck.collate=false" and 
"spellcheck.extendedResults=true", run the query again, then paste in the 
spellcheck response?

What is confusing me is that you said for the 2-word query "casa saja", it is 
trying to make 3 word corrections:
1. casa>cal 
2. saja>sala
3. casa saja>casa de
This third one doesn't make sense because SpellingQueryConverter breaks your 
query up on whitespace.  Also, it seems your fields are all tokenized on 
whitespace.  So for the spellchecker to try replacing the whole phrase as if it 
is a single token, it doesn't add up.
                
> 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