english - elasticsearch stopwords spanish
¿Cómo no analizar en ElasticSearch? (3)
Esto ya no es cierto debido a la eliminación de la string
(reemplazada por la keyword
y el tipo ``) como se describe here . En su lugar, debe usar "index": true | false
"index": true | false
Por ejemplo VIEJO:
{
"foo": {
"type" "string",
"index": "not_analyzed"
}
}
se convierte en NUEVO:
{
"foo": {
"type" "keyword",
"index": true
}
}
Esto significa que el campo está indexado, pero como está escrito como keyword
no analizada implícitamente.
Tengo un campo en un campo de ElasticSearch que no quiero analizar, es decir, debe almacenarse y compararse textualmente. Los valores contendrán letras, números, espacios en blanco, guiones, barras y quizás otros caracteres.
Si no doy un analizador en mi mapeo para este campo, el valor predeterminado todavía usa un tokenizer que piratea mi cadena literal en trozos de palabras. No quiero eso.
¿Hay un analizador súper simple que, básicamente, no analiza? ¿O hay una manera diferente de indicar que este campo no se analizará?
Solo creo el índice, no hago nada más. Puedo usar analizadores como "inglés" para otros campos que parecen ser nombres incorporados para analizadores preconfigurados. ¿Hay una lista de otros nombres? Tal vez hay una que se ajusta a mis necesidades (es decir, no hacer nada con la entrada).
Este es mi mapeo actualmente:
{
"my_type": {
"properties": {
"my_field1": { "type": "string", "analyzer": "english" },
"my_field2": { "type": "string" }
}
}
}
my_field1
depende del idioma; esto parece funcionar my_field2
será literal. Me gustaría dar un analizador allí que simplemente no hace nada.
Un valor de muestra para my_field2
sería "B45c 14/04"
.
keyword
analizador de keyword
también se puede usar.
// don''t actually use this, use "index": "not_analyzed" instead
{
"my_type": {
"properties": {
"my_field1": { "type": "string", "analyzer": "english" },
"my_field2": { "type": "string", "analyzer": "keyword" }
}
}
}
Como se señala aquí: https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-keyword-analyzer.html , tiene más sentido marcar esos campos como not_analyzed
.
Pero el analizador de keyword
puede ser útil cuando está configurado por defecto para el índice completo.
ACTUALIZACIÓN: como se dijo en los comentarios, la string
ya no se admite en 5.X
"my_field2": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
}
}
}
Verifique aquí, https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-core-types.html , para obtener más información.