ShingleFilterFactory影响Solr中突出显示的部分的大小

时间:2015-05-05 13:52:07

标签: solr highlighting

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>

为什么使用'ShingleFilterFactory'会影响突出显示?

修改

按要求添加架构信息:

<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>

使用包含木瓦过滤器的text_general会产生异常大的高亮字段,如上所述。

2 个答案:

答案 0 :(得分:2)

赢得了很多帮助,但会有所启发:

https://issues.apache.org/jira/browse/LUCENE-1489

答案 1 :(得分:2)

也许您可以使用荧光笔

https://issues.apache.org/jira/browse/LUCENE-1522

您所指出的问题是已知的,并且可以使用一些补丁:

https://issues.apache.org/jira/browse/LUCENE-1489

编辑:第二个链接与Bereng发送的相同。