繁体   English   中英

Solr中的突出显示不一致

[英]Inconsistent highlighting in Solr

我已使用Solr为数据建立索引。我想在搜索结果中突出显示匹配的关键字。 突出显示不一致。
例如。 如果搜索关键字是“ alonso”。

突出的实例是: 阿隆索阿隆索 fernando_,* #Alonso * MeetVettel

非突出显示的实例是:@ fernandoalonso,www.alonsodriver.com

谁能告诉我为什么?

我正在使用此配置-

  <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
</fieldType>

使用WhitespaceTokenizerFactory和WordDelimiterFilterFactory,单词将在空格和下划线处拆分,然后可以搜索。 这个TokenizerFactory不会像fernandoalonso这样的单词以相同的方式拆分。 为了在fernandoalonso上获得成功和亮点,您必须使用ngram将整个单词分解为很多较小的单词,这些单词是该单词的一部分。 像nso,onso,lonso,alonso。

可以在Apache solr搜索中找到一个很好的答案,包括使用ngram。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM