Sé que uno puede eliminar todos los documentos de un determinado tipo a través de deleteByQuery.
Ejemplo:
curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}'
Pero no tengo término y simplemente quiero eliminar todos los documentos de ese tipo, sin importar el término. ¿Cuál es la mejor práctica para lograr esto? El término vacío no funciona.
elasticsearch
Michael Leiss
fuente
fuente
fuente
-H 'Content-Type: application/json'
Desde ElasticSearch 5.x, la API delete_by_query está allí por defecto
POST: http://localhost:9200/index/type/_delete_by_query
fuente
El comentario de Torsten Engelbrecht en la respuesta de John Petrones se expandió:
(No quería editar la respuesta de John, ya que recibió votos positivos y está configurada como respuesta, y podría haber introducido un error)
fuente
Puede eliminar documentos del tipo con la siguiente consulta:
Probé esta consulta en Kibana y Elastic 5.5.2
fuente
A partir de Elasticsearch 2.x, la eliminación ya no está permitida, ya que los documentos permanecen en el índice causando daños en el índice.
fuente
news1, news2 and so on
y configurar un alias para el índice activo actual de lanews
ruta. Por supuesto, el nombre del índice es solo un ejemplo. Aquí puede encontrar un ejemplo completo de [alias de índice] ( elastic.co/guide/en/elasticsearch/reference/current/… ) y un artículo que explica un estudio de caso.Las respuestas anteriores ya no funcionan con ES 6.2.2 debido a la estricta verificación de tipo de contenido para solicitudes REST de Elasticsearch . El
curl
comando que terminé usando es este:fuente
En la consola Kibana :
fuente
Tienes estas alternativas:
1) Eliminar un índice completo:
ejemplo:
Para más detalles puedes encontrar aquí - https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html
2) Eliminar por consulta a los que coinciden:
* Aquí mentorz es un nombre de índice y usuarios es un tipo
fuente
A partir de ES 1.5.3, la API de eliminación por consulta está en desuso y se elimina por completo desde ES 2.0
En lugar de la API, Eliminar por consulta ahora es un complemento .
Para utilizar el complemento Eliminar por consulta, debe instalar el complemento en todos los nodos del clúster:
El uso del complemento es el mismo que el de la API anterior. No necesita cambiar nada en sus consultas: este complemento solo hará que funcionen.
* Para obtener información completa sobre POR QUÉ se eliminó la API, puede leer más aquí .
fuente
(La reputación no es lo suficientemente alta como para comentar) La segunda parte de la respuesta de John Petrone funciona: no se necesita consulta. Eliminará el tipo y todos los documentos contenidos en ese tipo, pero eso solo se puede volver a crear cada vez que indexe un nuevo documento a ese tipo.
Solo para aclarar:
$ curl -XDELETE 'http://localhost:9200/twitter/tweet'
Nota: esto no elimina el mapeo! Pero como se mencionó anteriormente, se puede reasignar fácilmente creando un nuevo documento.
fuente
Estoy usando elasticsearch 7.5 y cuando uso
que arrojará debajo del error.
También necesito agregar un
-H 'Content-Type: application/json'
encabezado adicional en la solicitud para que funcione.fuente
Solo para agregar un par de centavos a esto.
El "delete_by_query" mencionado en la parte superior todavía está disponible como un complemento en elasticsearch 2.x.
Aunque en la última versión 5.x próxima será reemplazada por "eliminar por API de consulta"
fuente
Elasticsearch 2.3 la opción
en elasticsearch.yml hacer el viaje
fuente
Si desea eliminar el documento de acuerdo con una fecha. Puedes usar la consola kibana (v.6.1.2)
fuente