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

Reply via email to