現在、従来の lucene ベースのアナライザー コンポーネントをエラスティック サーチ (0.19.18) に移行できるかどうか、およびその方法を評価しています。レガシー コードは lucene に基づいているため、アナライザーを es-plugin でラップしました。アナライザーの構成は、次の行のようになります。
index.analysis.analyzer.myAnalyzer.type : myAnalyzer
index.analysis.analyzer.default.type: myAnalyzer
index.analysis.analyzer.default_index.type: myAnalyzer
index.analysis.analyzer.default_search.type: myAnalyzer
ここまでは順調ですね。
curl -XGET 'localhost:9200/_analyze' -d 'Some text'
正しくトークン化されたテキストを含むオブジェクトを返しますが、
curl -XGET 'localhost:9200/<name-of-my-index>/_analyze' -d 'Some text'
トークン化されていないテキストを返します。明らかに、myAnalyzer の代わりに小文字のフィルターのみが適用されます。インデックス内のオブジェクトも正しく分析されていません。
インデックス マッピングは次のようになります (head-plugin からの出力)。
mappings: {
item: {
analyzer: myAnalyzer
properties: {
id: {
type: string
}
itemnumber: {
type: string
}
articletext: {
analyzer: myAnalyzer
type: string
}
sortvalue: {
type: string
}
salesstatus: {
format: dateOptionalTime
type: date
}
}
}
}
私はESを初めて使用するので、この動作の実際の理由がわかりません。アイデアを持っている人はいますか?