【发布时间】:2011-11-21 23:58:41
【问题描述】:
我使用 solr 3.4。当我搜索一个单词时,我有一个 InvalidTokenOffsetsException。 我的字段类型如下:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
当我删除“ASCIIFoldingFilterFactory”时,它可以工作。 “ISOLatin1AccentFilterFactory”也是同样的问题。
谁有办法?
谢谢
【问题讨论】:
-
解决办法是把 ASCIIFoldingFilterFactory 放在 tokenizer 后面。
-
轰隆隆!谢谢你,先生!你是一个活着的传奇! :)
-
更新:实际上它们中的大多数都已修复,但我仍然可以让它失败......但我想我可以解决这个问题
标签: solr field highlighting asciiencoding