Solrを使用していくつかの中国語ドキュメントのインデックスを作成しようとしていますが、Solrが一部のセグメント化された単語のインデックスを作成していないようです。
私が使用しているアナライザーはIKアナライザーhttp://code.google.com/p/ik-analyzer/です。
インデックスを作成するフィールド:
<field name="hospital_alias_splitted" type="cn_ik" indexed="true" stored="true" multiValued="true" omitNorms="false"/>
cn_ikの定義:
<fieldType name="cn_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false"/>
</analyzer>
たとえば、インデックスに登録される単語は「AB」(引用符なし)です。中国語のアナライザーを使用して単語をセグメンテーションした後、「AB」、「A」、「B」の3つのトークンを取得しました。
ご覧のとおり、最初のトークン「AB」は次の2つのトークンをカバーしています。
これらのトークンをSolrにフィードした後、Solrはインデックス「AB」、「A」、および「B」のみを無視しているように見えます。「A」または「B」を検索しても結果が得られないためです。
Solrが「AB」に索引を付けるとき、それはすでに索引付けされた単語の終わりに達しているので、「A」と「B」は無視されると思います。
LukeとAnalysisRequestHandlerを使用しても、それ以上のヒントは表示されません。これがSolrのバグまたは機能かどうかはわかりません。
コメントや提案はありますか?
ありがとう :)