ElasticSearchでトークンフィルタが適用される順序を制御しようとしています。ElasticSearchのトークンフィルタの制御順序
トークナイザが最初に適用され、トークンフィルタが適用されることはドキュメントからわかりますが、トークンフィルタの順序がどのように決定されるかについては言及していません。
は、ここに私の分析のセットアップスクリプトからYAMLスニペットです:
KeywordNameIndexAnalyzer :
type : custom
tokenizer : whitespace
filter : [my_word_concatenator, keyword_ngram]
私はmy_word_concatenator
がkeyword_ngram
前に適用されるだろうと思っているだろうが、それはそうではありませんようにそれはそう。どのようにこれらのフィルタの順序を制御することができます(または)場合は誰も知っている?
ありがとうございます!
あなたの期待は正しいです。 [カスタムアナライザ](https://github.com/elasticsearch/elasticsearch/blob/a0a8538ef9c7d8f24dc9b9f081c548f7d9e8b7cd/src/main/java/org/elasticsearch/index/analysis/CustomAnalyzer.java#L98)のフィルタは、順番に適用されますフィルター配列によって指定されます。これが事実ではないような例を挙げてください。 – imotov
あなたが正しいです - 私がトークナイザとトークンフィルタの無意味な組み合わせを使用したため、注文がオフに見えた理由がありました。興味があれば、my_word_concatenatorは空白を削除しますが、空白トークナイザを使用していたので、フィルタに渡されたトークンには空白がありませんでした。だから1は2の後に起こるのとは対照的に、まったく起こっていなかった。 –