aws - elasticsearch tutorial
Eliminar datos de ElasticSearch (14)
Soy nuevo en ElasticSearch . Estoy tratando de averiguar cómo eliminar datos de ElasticSearch. He borrado mis índices. Sin embargo, eso no parece eliminar realmente los datos en sí. Las otras cosas que he visto apuntan a la función Eliminar por consulta . Sin embargo, ni siquiera estoy seguro de qué preguntar. Conozco mis índices. Esencialmente, me gustaría averiguar cómo hacer una
DELETE FROM [Index]
Desde PostMan en Chrome. Sin embargo, no estoy teniendo ninguna suerte. Parece que no importa lo que haga, los datos cuelgan alrededor. Hasta ahora, he eliminado con éxito los índices utilizando DELETE HTTP Verb en PostMan y usando una URL como:
http://localhost:9200/[indexName]
Sin embargo, eso no parece eliminar realmente los datos (también conocidos como documentos).
Al eliminar el índice se eliminará la asignación y el tipo a lo largo. Puedes eliminar todas las filas por la siguiente consulta
curl -XDELETE ''localhost:9200/twitter/tweet/_query?pretty'' -d''
{
"query": {
"match_all":
}
}''
Sin embargo, para la consulta anterior, debe instalar el complemento eliminar por consulta, ya que la eliminación por consulta 2.0.0-beta1 de Elasticsearch se eliminó de la API principal.
Install delete-by-query plugin
sudo bin/plugin install delete-by-query
Para más
http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/
Hay muchas respuestas buenas aquí, pero también hay algo que me gustaría agregar:
- Si se está ejecutando en el servicio ElasticSearch de AWS , no puede eliminar / eliminar índices . En lugar de eliminar índices, debes reindexarlos .
La documentation (o la Guía definitiva ) dice que también puede utilizar la siguiente consulta para eliminar todos los índices:
curl -XDELETE ''http://localhost:9200/*''
Y hay una nota importante:
Para algunos, la posibilidad de eliminar todos sus datos con un solo comando es una perspectiva muy aterradora. Si desea eliminar la posibilidad de una eliminación masiva accidental, puede configurar lo siguiente como
true
en suelasticsearch.yml
:
action.destructive_requires_name: true
Para la eliminación masiva por consulta, puede utilizar la eliminación especial por API de consulta :
$ curl -XDELETE ''http://localhost:9200/twitter/tweet/_query'' -d ''{
"query" : {
"term" : { "user" : "kimchy" }
}
}
En la historia esa API fue eliminada y luego reintroducida de nuevo
Quien interesante tiene larga historia.
- En la primera versión de esa respuesta me refiero a la documentación de elasticsearch versión 1.6 . En él, esa funcionalidad estaba marcada como obsoleta pero funciona bien.
- En la versión 2.0 de elasticsearch se movió a un plugin separado . Y hasta se explicaron las razones por las que se convirtió en plugin.
- ¡Y nuevamente apareció en la API central en la versión 5.0 !
Puede eliminar el índice completo, el tipo de documento o un dato de identificación especial. estas son las tres formas:
curl -XDELETE localhost: 9200 / nombre_índice
curl -XDELETE localhost: 9200 / index_name / doc-type
curl -XDELETE localhost: 9200 / nombre_índice / tipo-doc / documentoId
y si desea eliminar todo el índice, vaya al comodín.
Puede eliminar un índice en python de la siguiente manera
from elasticsearch import Elasticsearch
es = Elasticsearch([{''host'':''localhost'', ''port'':''9200''}])
es.index(index=''grades'',doc_type=''ist_samester'',id=1,body={
"Name":"Programming Fundamentals",
"Grade":"A"
})
es.indices.delete(index=''grades'')
Puede eliminar usando cURL
o visualmente usando una de las muchas herramientas que los entusiastas de código abierto han creado para Elasticsearch.
Usando cURL
curl -XDELETE localhost:9200/index/type/documentID
p.ej
curl -XDELETE localhost:9200/shop/product/1
A continuación, recibirá una respuesta sobre si esto tuvo éxito o no. También puede eliminar un índice completo o tipos con un índice, puede eliminar un tipo omitiendo la ID del documento como así:
curl -XDELETE localhost:9200/shop/product
Si desea eliminar un índice -
curl -XDELETE localhost:9200/shop
Si desea eliminar más de un índice que sigue una convención de nomenclatura determinada (observe el *
, un carácter comodín), -
curl -XDELETE localhost:9200/.mar*
Visualmente
Hay varias herramientas como se mencionó anteriormente, no las enumeraré aquí, pero las vincularé con una que le permite comenzar de inmediato, que se encuentra here . Esta herramienta se llama KOPF. Para conectarse a su host, haga clic en el logotipo en la esquina superior izquierda e ingrese la URL de su grupo.
Una vez conectado, podrá administrar todo su clúster, eliminar, optimizar y ajustar su clúster.
Quería eliminar el índice de logstash y busqué mucho sobre diferentes herramientas como curl. Pero encontré la solución al final. Inicia sesión en Kibana. Vaya a la pestaña Dev Tools (Herramientas de desarrollo) y escriba DELETE /logstash-*
en el campo de consulta y DELETE /logstash-*
botón de flecha verde. si obtiene un "acuse de recibo": verdadero en respuesta significa que los datos se han borrado.
Si alguna vez necesita eliminar todos los índices, esto puede ser útil:
curl -X DELETE ''http://localhost:9200/_all''
También puede eliminar el índice usando la acción DELETE en ''elasticsearch head'' ( complemento de Chrome ). Agrégalo a tu chrome y conéctalo a tu host. Allí encontrará todos sus índices y si hace clic en el botón de acciones debajo del índice que desea eliminar, encontrará una opción DELETE en el menú desplegable. haga clic en él e ingrese ELIMINAR en la ventana emergente. Su índice será eliminado. La extensión ''Elasticsearch head'' es una manera fácil de ver y administrar sus índices y datos.
Tienes que enviar una solicitud DELETE
a
http://[your_host]:9200/[your_index_name_here]
También puede eliminar un solo documento:
http://[your_host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]
Te sugiero que uses elastichammer .
Después de eliminar, puede buscar si el índice aún existe con la siguiente URL: http://[your_host]:9200/_stats/
¡Buena suerte!
Use Curl -L localhost: 9200 / _cat / indices - Para listar índices hacia abajo
9200: puerto predeterminado [cambiar el puerto si se usa algún otro puerto]
Es probable que encuentre todos los índices que comienzan con el formato logstash-aaaa-mm-dd. (Logstash- *)
Ahora puedes enumerar todos los índices y usarlos.
Curl -XDELETE localhost: 9200 / nombre_índice (que eliminará los datos y los índices).
forma más sencilla!
Endpoint :
http://localhost:9201/twitter/_delete_by_query
Payload :
{
"query": {
"match": {
"message": "some message"
}
}
}
Donde twitter
es el índice en búsqueda elástica.
ref; https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
#list all index: curl -XGET http://localhost:9200/_cat/indices?v
#delete index: curl -XDELETE ''localhost:9200/index_name''
#delete all indices: curl -XDELETE ''localhost:9200/_all''
#delete document : curl -XDELETE ''localhost:9200/index_name/type_name/document_id''
Instalar kibana . Kibana tiene una herramienta de desarrollo más inteligente que ayuda a crear consultas fácilmente.