Hi All, I didn't have the lucene-solr source compiling cleaning in eclipse initially so I created a very quick maven project to demonstrate this issue:
https://github.com/rainkinz/solr_spellcheck_index_out_of_bounds.git Having said that I just got everything set up in eclipse, so I can create a test case if this is actually an issue and not something weird with my configuration. Thanks Brendan On Thu, Aug 15, 2013 at 1:43 PM, Brendan Grainger < brendan.grain...@gmail.com> wrote: > Further to this. If I change: > > tpms,service tire monitor,tire monitor,tire pressure monitor,tire pressure > monitoring system,tpm,low tire warning,tire pressure monitor system > > to > > service tire monitor,tire monitor,tire pressure monitor,tire pressure > monitoring system,tpm,low tire warning,tire pressure monitor system,tpms > > I don't get a crash. I tried it with some other fields too. e.g.: > > asdm,airbag system diagnostic module => crash > > airbag system diagnostic module,asdm => no crash > > Thanks > Brendan > > > > On Thu, Aug 15, 2013 at 1:37 PM, Brendan Grainger < > brendan.grain...@gmail.com> wrote: > >> Hi All, >> >> I've been debugging an issue where the query 'tpms' would make the >> spellchecker throw the following exception: >> >> 21021 [qtp91486057-17] ERROR org.apache.solr.servlet.SolrDispatchFilter >> – null: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:190) >> at >> org.apache.solr.spelling.SpellCheckCollator.collate(SpellCheckCollator.java:75) >> >> >> I have the following synonyms defined for tpms: >> >> tpms,service tire monitor,tire monitor,tire pressure monitor,tire >> pressure monitoring system,tpm,low tire warning,tire pressure monitor system >> >> Note that if you query any of the other synonyms there is no issue, only >> tpms. >> >> Looking at my field definition for my spellchecker I realized I am doing >> query time synonym expansion: >> >> <fieldType name="text_spell" class="solr.TextField" >> positionIncrementGap="100" omitNorms="true"> >> <analyzer type="index"> >> <tokenizer class="solr.StandardTokenizerFactory"/> >> <filter class="solr.StopFilterFactory" >> ignoreCase="true" >> words="lang/stopwords_en.txt" >> enablePositionIncrements="true" >> /> >> <filter class="solr.LowerCaseFilterFactory"/> >> <filter class="solr.StandardFilterFactory"/> >> </analyzer> >> <analyzer type="query"> >> <tokenizer class="solr.StandardTokenizerFactory"/> >> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" >> ignoreCase="true" expand="true"/> >> <filter class="solr.StopFilterFactory" >> ignoreCase="true" >> words="lang/stopwords_en.txt" >> enablePositionIncrements="true" >> /> >> <filter class="solr.LowerCaseFilterFactory"/> >> <filter class="solr.StandardFilterFactory"/> >> </analyzer> >> </fieldType> >> >> I copied this field definition from: >> http://wiki.apache.org/solr/SpellCheckingAnalysis. As the issue seemed >> related to synonyms I removed the SynonymFilterFactory and everything >> works. >> >> I'm going to try to create a reproducible test case for the crash, but >> right now I'm wondering what I lose by not having synonym expansion when >> spell checking? >> >> Thanks >> Brendan >> >> >> > > > -- > Brendan Grainger > www.kuripai.com > -- Brendan Grainger www.kuripai.com