Digamos que tengo un tipo tag
en un índice Elasticsearch, con la siguiente asignación:¿Cómo actualizo varios elementos en ElasticSearch?
{
"tag": {
"properties": {
"tag": {"type": "string", "store": "yes"},
"aliases": {"type": "string"}
}
}
}
Cada entrada es una etiqueta, y una serie de alias para esa etiqueta. He aquí un ejemplo de ítem:
{
"word": "weak",
"aliases": ["anemic", "anaemic", "faint", "flimsy"]
}
De vez en cuando, quiero añadir palabras nuevas etiquetas con sus alias, y añadir nuevos alias a las palabras de etiquetas existentes.
Agregar nuevas palabras de etiqueta con sus alias es fácil, es solo un documento nuevo. Sin embargo, ¿cómo puedo agregar nuevos alias a las palabras de etiqueta existentes de una manera sensata?
Sé que puedo buscar la palabra clave, obtener su documento, buscar si el alias ya existe en la matriz de alias, si no agregarlo, que guardar. Sin embargo, esto no parece una buena solución.
¿Hay alguna manera de hacer una actualización masiva?
La actualización por consulta aún no se ha agregado a Elastic, pero existe un [complemento] (https://github.com/yakaz/elasticsearch-action-updatebyquery/). –
A partir de Elasticsearch 2.3, la actualización por consulta está disponible - https://www.elastic.co/guide/en/elasticsearch/reference/2.3/docs-update-by-query.html – PhaedrusTheGreek