tutorial aws elasticsearch

elasticsearch - aws - Eliminar todos los documentos del índice/tipo sin eliminar el tipo



elasticsearch tutorial (14)

Sé que uno puede eliminar todos los documentos de un cierto tipo a través de deleteByQuery.

Ejemplo:

curl -XDELETE ''http://localhost:9200/twitter/tweet/_query'' -d ''{ "query" : { "term" : { "user" : "kimchy" } } }''

Pero no tengo ningún 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.

Enlace a deleteByQuery


El complemento Delete-By-Query se ha eliminado a favor de una nueva implementación de Delete By Query API en core. Leer aquí

curl -XPOST ''localhost:9200/twitter/tweet/_delete_by_query?conflicts=proceed&pretty'' -d'' { "query": { "match_all": {} } }''


Nota para ES2 +

Comenzando con 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, Delete By Query ahora es un complemento .

Para utilizar el complemento Eliminar por consulta, debe instalar el complemento en todos los nodos del clúster:

sudo bin/plugin install delete-by-query

Todos los nodos deben reiniciarse después de la instalación.


El uso del complemento es el mismo que el API anterior. No necesita cambiar nada en sus consultas; este complemento solo hará que funcionen.

* Para obtener información completa acerca de POR QUÉ se eliminó la API, puede leer más here .


(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. Suprimirá 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 borra la asignación! Pero como se mencionó anteriormente, se puede reasignar fácilmente creando un documento nuevo.


A partir de Elasticsearch 2.x delete ya no está permitido, ya que los documentos permanecen en el índice y causan daños en el índice.


Creo que si combina la eliminación por consulta con una coincidencia, todo debería hacer lo que está buscando, algo como esto (usando su ejemplo):

curl -XDELETE ''http://localhost:9200/twitter/tweet/_query'' -d ''{ "query" : { "match_all" : {} } }''

O simplemente puede eliminar el tipo:

curl -XDELETE http://localhost:9200/twitter/tweet


De ElasticSearch 5.x, la API delete_by_query está allí por defecto

POST: http://localhost:9200/index/type/_delete_by_query

{ "query": { "match_all": {} } }


El comentario de Torsten Engelbrecht en la respuesta de John Petrones se expandió:

curl -XDELETE ''http://localhost:9200/twitter/tweet/_query'' -d ''{ "query": { "match_all": {} } }''

(No quise editar la respuesta de John, ya que obtuvo votaciones ascendentes y se establece como respuesta, y podría haber introducido un error)


Elasticsearch 2.3 la opción

action.destructive_requires_name: true

en elasticsearch.yml hacer el viaje

curl -XDELETE http://localhost:9200/twitter/tweet


En la consola Kibana :

POST calls-xin-test-2/_delete_by_query { "query": { "match_all": {} } }



Puede eliminar documentos del tipo con la siguiente consulta:

POST /index/type/_delete_by_query { "query" : { "match_all" : {} } }

Probé esta consulta en Kibana y Elastic 5.5.2


Si desea eliminar el documento según una fecha. Puede usar la consola kibana (v.6.1.2)

POST index_name/_delete_by_query { "query" : { "range" : { "sendDate" : { "lte" : "2018-03-06" } } } }


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 próxima 5.x, será reemplazado por "delete by query api"


Tienes estas alternativas:

1) Eliminar un índice completo:

curl -XDELETE ''http://localhost:9200/indexName''

ejemplo:

curl -XDELETE ''http://localhost:9200/mentorz''

Para obtener más detalles, puede encontrarlo aquí: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html

2) Eliminar por consulta a los que coinciden:

curl -XDELETE ''http://localhost:9200/mentorz/users/_query'' -d ''{ "query": { "match_all": {} } }''

* Aquí mentorz es un nombre de índice y los usuarios son un tipo