tutorial puertos español elastic ejemplos elasticsearch

elasticsearch - puertos - logstash tutorial español



Analizador de índice por defecto en elasticsearch (2)

Estoy enfrentando un problema con elasticsearch donde no quiero que se analice mi término indexado. Pero el elasticsearch tiene una configuración predeterminada que es tokenizing en el espacio. Por lo tanto, mi consulta de facetas no está devolviendo el resultado que quiero.

Leí que "index" : "not_analyzed" en las propiedades del tipo de índice debería funcionar. Pero el problema es que no conozco la estructura de mi documento de antemano. Estaría indexando bases de datos MySQL aleatorias a elasticsearch sin conocer la estructura de la tabla.

¿Cómo puedo configurar elasticsearch para que, de forma predeterminada, use "index" : "not_analyzed" hasta que se "index" : "not_analyzed" contrario? Gracias

PD: Estoy usando Java si puedo usar directamente cualquier API para ello, me encantaría.


Usaría plantillas dinámicas; debería hacer lo que está buscando:

{ "testtemplates" : { "dynamic_templates" : [ { "template1" : { "match" : "*", "match_mapping_type" : "string", "mapping" : { "type" : "string", "index" : "not_analyzed" } } } ] } }

Más sobre este enfoque aquí:

https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html#dynamic-templates

Importante: si alguien sugiere este enfoque para resolver el problema no analizado , ¡no funcionará! El analizador de palabras clave realiza algunos análisis de los datos y convierte los datos en letras pequeñas.

por ejemplo, Data: ElasticSearchRocks ==> Keyword Analyzer: elasticsearchrocks

Pruébelo usted mismo con el análisis de la consulta y ver que suceda.

curl -XPUT localhost:9200/testindex -d ''{ "index" : { "analysis" : { "analyzer" : { "default" : { "type" : "keyword" } } } } }''

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-keyword-analyzer.html


agregue index.analysis.analyzer.default.type: keyword en su elasticsearch.yml .