He estado jugando con ElasticSearch para un nuevo proyecto mío. He configurado los analizadores por defecto para usar el ngram tokenfilter. Este es mi archivo elasticsearch.yml:ElasticSearch n-gram tokenfilter no encuentra palabras parciales
index:
analysis:
analyzer:
default_index:
tokenizer: standard
filter: [standard, stop, mynGram]
default_search:
tokenizer: standard
filter: [standard, stop]
filter:
mynGram:
type: nGram
min_gram: 1
max_gram: 10
He creado un nuevo índice y añade el siguiente documento a la misma:
$ curl -XPUT http://localhost:9200/test/newtype/3 -d '{"text": "one two three four five six"}'
{"ok":true,"_index":"test","_type":"newtype","_id":"3"}
Sin embargo, cuando la búsqueda utilizando la consulta text:hree
o text:ive
o cualquier otro parcial términos, ElasticSearch no devuelve este documento. Devuelve el documento solo cuando busco el término exacto (como text:two
).
También he intentado cambiar el archivo de configuración de modo que default_search también use el filtro de token ngram, pero el resultado fue el mismo. ¿Qué estoy haciendo mal aquí y cómo lo corrijo?
Hola Brian, para que esté completo, ¿podría publicar la configuración corregida? Estoy teniendo el mismo problema. – Rich