2013-11-28 4 views
0

Я проиндексировал данные, используя Solr.I хочу выделить совпадающее ключевое слово в результатах поиска. подсветка является непоследовательной.
например. если ключевым словом поиска является «alonso».Непоследовательная подсветка в Solr

выделены экземпляры: Алонсо, fernando_ Alonso * #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 слова будут разделены на пробельных и подчеркивания, а затем для поиска. Слово, подобное fernandoalonso, не разделяется таким же образом этим TokenizerFactory. Чтобы получить хиты и блики на fernandoalonso, вы должны использовать ngrams, чтобы сделать целое слово множеством меньших слов, которые являются частью этого слова. Как и nso, onso, lonso, alonso.

Хороший ответ, включающий использование nграмм, можно найти по адресу: Apache solr search part of the word

Смежные вопросы