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

Reply via email to