Спасибо, что нашли время, чтобы прочитать это.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"/>