2016-05-19 2 views
0

Спасибо, что нашли время, чтобы прочитать это.Solr partial match/EdgeNGram highlight

Я использую solr 6, чтобы заставить маркер работать с EdgeNGramFilterFactory, проблема в том, что solr возвращает термин «соответствие», когда то, что я хочу, это выделить символы в выраженном совпадении.

Результаты, которые возвращаются выглядеть следующим образом:

<em>Welcome</em> в джунгли

То, что я хочу, чтобы они выглядели, как это: <em>Wel</em>come в джунгли

В моей схеме:

<fieldtype name="text" class="solr.TextField"> 
    <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="10"/> 
     <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/> 
     <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/> 
     <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    </fieldtype> 

<field name="document" type="text" indexed="true" stored="true"/> 

ответ

0

Solr вернуть текст в виде выделения, который был сохранен в Solr enter code here индекс.

Термин индексации, как Wel, которые были сделаны с использованием analyser, используемых при индексировании, не возвращаются им в любом ответе.

В ответ вы получите исходный текст, если вы выбрали stored=true для того же поля.

Таким образом, даже если он соответствует термину Wel, он вернет исходный текств выделенном виде.