2013-11-28 194 views
0

我使用Solr編制索引數據。我想要突出顯示搜索結果中匹配的關鍵字。突出顯示不一致。
例如。如果搜索關鍵字是'alonso'。Solr中的突出顯示不一致

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

非highlightes實例是: @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> 

回答

0

隨着WhitespaceTokenizerFactory和WordDelimiterFilterFactory的話會在空白被拆分,並強調,然後進行搜索。像這個TokenizerFactory一樣,fernandoalonso這個詞不會以同樣的方式分裂。爲了獲得關於fernandoalonso的點擊和亮點,您必須使用ngrams將整個單詞製作成許多較小的單詞,這些單詞是該單詞的一部分。像nso,onso,lonso,alonso。

包括使用ngram的好答案可以在Apache solr search part of the word