Elasticsearch Eliminar campo

Elasticsearch Eliminar campo

"Al trabajar con los índices de elasticearch, puede encontrar una instancia en la que necesita eliminar un campo de un documento existente. Desafortunadamente, Elasticsearch no proporciona una solicitud nativa que podamos usar para realizar dicha acción.

Sin embargo, podemos usar la API de actualización de documentos y pasar un script que nos permita eliminar un campo en función de su nombre."

NOTA: Este proceso requiere que tenga conocimiento básico de las secuencias de comandos de Elasticsearch y la API de actualización de documentos. Siéntase libre de explorar los documentos o nuestros tutoriales sobre el tema para obtener más información.

Vamos a sumergirnos.

Compruebe si existe el documento

Antes de eliminar un campo de un documento específico, es bueno asegurarse de que el documento de destino exista dentro del índice.

Podemos usar la API de búsqueda para obtener el documento de destino.

Por ejemplo, supongamos que tenemos el índice kibana_sample_logs_data. Podemos buscar en el índice un documento que contenga una IP específica.

NOTA: El ejemplo anterior se usa solo para fines de ilustración. Puede usar varios métodos para verificar si hay un documento específico disponible en el índice.

curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_search" -h "kbn -xsrf: informes de contenido" -h ": aplicación/json" -d '

"Tamaño": 0,
"Consulta": "Match":
"IP": "171.24.97.162 "

'

Salida resultante:


"Tomado": 3,
"Timed_out": falso,
"_shards":
"Total": 1,
"exitoso": 1,
"omitido": 0,
"Falló": 0
,
"golpes":
"total":
"Valor": 17,
"Relación": "Eq"
,
"max_score": nulo,
"golpes": []

A continuación, un script simple puede eliminar un campo de destino del documento. Comience iniciando sesión en su consola Kibana y ejecute el comando:

curl -xpost "http: // localhost: 9200/kibana_sample_data_logs/_update/5pa49iibktjaz6tttsib5" -h "kbn -xsrf: informes" -h "tipo de contenido: aplicación/json" --d ''

"Script": "CTX._fuente.eliminar ('\ "ip' \") ""
'

La solicitud anterior utiliza un script de contexto sin dolor para actualizar el documento y eliminar el campo ""IP"" con la ID especificada.

Producción:


""_index"": ""kibana_sample_data_logs"",
""_id"": ""5pa49iibktjaz6ttsib5"",
""_versión 2,
""Resultado"": ""actualizado"",
""_shards"":
""Total"": 2,
""exitoso"": 2,
""Falló"": 0
,
""_seq_no"": 14074,
""_primary_term"": 1

Una vez que se actualiza el documento, puede verificar ejecutando la consulta.:

curl -xget ""http: // localhost: 9200/kibana_sample_data_logs/_doc/5pa49iibktjaz6ttsib5"" -h ""kbn -xsrf: informes""

La solicitud anterior debe devolver los datos almacenados en el documento con la ID especificada.

Podemos verificar que el campo IP ya no esté en el documento.

Conclusión

En este artículo, aprendió cómo usar capacidades de secuencias de comandos Elasticsearch para eliminar un campo de un documento existente.

Gracias por leer!!

"