嘗試控制令牌過濾器在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之後發生。 –