[英]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.