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