Intentando controlar el orden en que se aplican los filtros de tokens en ElasticSearch.Orden de control de los filtros de tokens en ElasticSearch
Sé por los documentos que el tokenizador se aplica primero, luego los filtros token, pero no mencionan cómo se determina el orden de los filtros token.
He aquí un fragmento YAML de mi análisis de secuencia de comandos de configuración:
KeywordNameIndexAnalyzer :
type : custom
tokenizer : whitespace
filter : [my_word_concatenator, keyword_ngram]
yo habría pensado que my_word_concatenator
ha de aplicarse antes keyword_ngram
, pero parece que no es el caso. ¿Alguien sabe cómo (o si) se puede controlar el orden de estos filtros?
¡Muchas gracias!
Sus expectativas son correctas. Los filtros del [analizador personalizado] (https://github.com/elasticsearch/elasticsearch/blob/a0a8538ef9c7d8f24dc9b9f081c548f7d9e8b7cd/src/main/java/org/elasticsearch/index/analysis/CustomAnalyzer.java#L98) se aplican en el orden especificado por la matriz de filtros. ¿Podría darnos un ejemplo, donde este no parece ser el caso? – imotov
Tiene razón; la razón por la que el orden parecía estar fuera fue porque utilicé una combinación sin sentido de tokenizador y filtros de tokens. Si tiene curiosidad, my_word_concatenator quita espacio en blanco, pero como estaba usando el tokenizer de espacios en blanco, no había espacios en blanco en los tokens que llegaban a los filtros. Entonces 1 no estaba sucediendo en absoluto, en lugar de suceder después de 2. –