【发布时间】:2015-07-15 07:15:51
【问题描述】:
将ShingleFilterFactory 添加到 solr(索引时间)中的类型确实会导致在使用突出显示进行查询时改变行为。
示例文本:“在船上,龙在盒子里”
如果没有ShingleFilterFactory,两个“in”标记将分别突出显示。
<em>in</em> a ship a dragon was <em>in</em> a box
使用它,整个片段将作为单个突出显示返回。
<em>in a ship a dragon was in</em>
为什么使用 'SingleFilterFactory' 会影响突出显示?
编辑:
按要求添加架构信息:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
使用包含 shingle 过滤器的 text_general 会导致如上所述的异常大的高亮字段。
【问题讨论】:
-
当您引用示例文本时,是索引文本,还是查询,或两者兼而有之?您介意发布该字段的架构吗?
标签: solr highlighting