Apache Solr を使用して強調表示を正しくしようとしています。部分一致の場合、単語の一致部分を強調表示したい。ただし、代わりに単語全体 (検索語に部分的に一致したもの) が強調表示されます。
例:
「adida shi」を検索すると、「adidas shirts」という名前のアイテムと「adidas red shirts」という名前のアイテムの 2 つが表示されます。
/select?q=name:adida+shi&hl=true&hl.fl=name&qt=standardwt=json
予想される強調表示:
<em>adida</em>s <em>shi</em>rts
<em>adida</em>s red <em>shi</em>rts
実際の強調表示:
<em>adidas</em> <em>shirts</em>
<em>adidas</em> red <em>shirts</em>
強調表示に使用されるフィールドは、schema.xml で次のように定義されます。
<field name="name" type="autocomplete_text" indexed="true" stored="true"/>
フィールドのフィールド タイプは次のようになります。
<fieldType name="autocomplete_text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
コア構成ファイルで強調表示するための特定の構成がありません。
Solr v6.0.1 を使用しています。強調表示は、同じ構成の solr v4.10.4 で期待どおりに機能していました。Solr wiki の次のセクションを調べて、さまざまな強調表示パラメーターを試しましたが、うまくいきませんでした。
https://cwiki.apache.org/confluence/display/solr/Highlighting https://cwiki.apache.org/confluence/display/solr/Standard+Highlighter
それを機能させる方法はありますか?