Je suis nouveau sur ElasticSearch . J'essaie de comprendre comment supprimer des données d'ElasticSearch. J'ai supprimé mes index. Cependant, cela ne semble pas supprimer les données elles-mêmes. Les autres éléments que j'ai vus pointent vers la fonctionnalité Supprimer par requête . Cependant, je ne sais même pas sur quoi interroger. Je connais mes index. Essentiellement, je voudrais savoir comment faire un
DELETE FROM [Index]
De PostMan dans Chrome. Cependant, je n'ai aucune chance. Il semble que peu importe ce que je fais, les données traînent. Jusqu'ici, j'ai réussi à supprimer les index en utilisant le verbe DELETE HTTP dans PostMan et en utilisant une adresse URL telle que:
http://localhost:9200/[indexName]
Cependant, cela ne semble pas supprimer réellement les données (docs) elles-mêmes.
Vous pouvez supprimer à l'aide de cURL
ou visuellement à l'aide de l'un des nombreux outils créés par les enthousiastes de l'open source pour Elasticsearch.
Utilisation de cURL
curl -XDELETE localhost:9200/index/type/documentID
par exemple.
curl -XDELETE localhost:9200/shop/product/1
Vous recevrez ensuite une réponse indiquant si cela a réussi ou non. Vous pouvez également supprimer un index entier ou des types avec un index. Vous pouvez également supprimer un type en omettant l'identifiant du document, comme ceci:
curl -XDELETE localhost:9200/shop/product
Si vous souhaitez supprimer un index -
curl -XDELETE localhost:9200/shop
Si vous souhaitez supprimer plusieurs index qui suivent une certaine convention de dénomination (notez le *
, un caractère générique), -
curl -XDELETE localhost:9200/.mar*
visuellement
Il existe différents outils, comme mentionné ci-dessus, je ne les énumérerai pas ici, mais je vous renverrai à un outil qui vous permet de commencer immédiatement, situé ici . Cet outil s'appelle KOPF. Pour vous connecter à votre hôte, veuillez cliquer sur le logo situé dans le coin supérieur gauche et entrez l'URL de votre cluster.
Une fois connecté, vous pourrez administrer l’ensemble de votre cluster, supprimer, optimiser et ajuster votre cluster.
Si vous avez besoin de supprimer tous les index, cela peut être utile:
curl -X DELETE 'http://localhost:9200/_all'
Powershell:
Invoke-WebRequest -method DELETE http://localhost:9200/_all
Le documentation (ou Le Guide définitif ) indique que vous pouvez également utiliser la requête suivante pour supprimer tout indices:
curl -XDELETE 'http://localhost:9200/*'
Et il y a une note importante:
Pour certains, la possibilité de supprimer toutes vos données avec une seule commande est une perspective très effrayante. Si vous souhaitez éliminer la possibilité d’une suppression massive accidentelle, vous pouvez définir le paramètre suivant sur
true
dans votreelasticsearch.yml
:
action.destructive_requires_name: true
Vous devez envoyer une demande DELETE
à
http://[your_Host]:9200/[your_index_name_here]
Vous pouvez également supprimer un seul document:
http://[your_Host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]
Je vous suggère d'utiliser astichammer .
Après la suppression, vous pouvez rechercher si l’index existe toujours avec l’URL suivante: http://[your_Host]:9200/_stats/
Bonne chance!
La suppression de l'index supprimera le mappage et le type. vous pouvez supprimer toutes les lignes à l'aide de la requête suivante
curl -XDELETE 'localhost:9200/Twitter/Tweet/_query?pretty' -d'
{
"query": {
"match_all":
}
}'
Cependant, pour la requête ci-dessus, vous devez installer le plug-in delete-by-query à partir de la version 2.0.0-beta1 d'Elasticsearch. La suppression par requête a été supprimée de l'API principale.
Install delete-by-query plugin
Sudo bin/plugin install delete-by-query
Pour plus
http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/
#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'
Installez kibana . Kibana a un outil de développement plus intelligent qui permet de créer facilement une requête.
Pour la suppression en masse par requête, vous pouvez utiliser la commande spéciale suppression par l'API de requête :
$ curl -XDELETE 'http://localhost:9200/Twitter/Tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}
Qui intéressant, il a une longue histoire.
Vous pouvez supprimer un index dans python comme suit
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')
manière la plus simple!
Endpoint :
http://localhost:9201/Twitter/_delete_by_query
Payload :
{
"query": {
"match": {
"message": "some message"
}
}
}
où Twitter
est l'index de la recherche élastique
ref; https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
Il y a beaucoup de bonnes réponses ici, mais il y a aussi une chose que j'aimerais ajouter:
Vous pouvez supprimer un index entier, un type de document ou un identifiant particulier. Ce sont les trois façons:
curl -XDELETE localhost:9200/index_name
curl -XDELETE localhost:9200/index_name/doc-type
curl -XDELETE localhost:9200/index_name/doc-type/documentId
et si vous souhaitez supprimer tout l'index, optez pour un caractère générique.
Pour lister les index curl -L localhost:9200/_cat/indices
9200
port par défaut [change le port si vous utilisez un autre port]
Vous trouverez probablement tous les index commençant par logstash-yyyy-mm-dd
format (logstash- *)
Vous pouvez voir tous les indices et utiliser
Pour supprimer les indices et les données, déclenchez la commande suivante.
curl -XDELETE localhost:9200/index_name
(Qui supprimera les données et les index à la fois).
Je voulais supprimer logstash index et beaucoup de recherches sur différents outils comme curl. Mais trouvé la solution à la fin. Connectez-vous à Kibana. Allez dans l'onglet Outils de développement et tapez DELETE /logstash-*
dans le champ de requête, puis appuyez sur le bouton en forme de flèche verte. si vous obtenez "acquitté": true en réponse, cela signifie que les données ont été effacées.
Vous pouvez également supprimer l'index en utilisant l'action DELETE dans 'elasticsearch head' ( plugin Chrome ). Ajoutez-le à votre chrome et connectez-le à votre hôte. Vous y trouverez tous vos index et, si vous cliquez sur le bouton Actions situé sous l’index que vous souhaitez supprimer, vous trouverez une option SUPPRIMER dans le menu déroulant. cliquez dessus et entrez SUPPRIMER dans la fenêtre contextuelle. Votre index sera supprimé. L'extension 'Elasticsearch head' constitue un moyen simple d'afficher et de gérer vos index et vos données.
curl -X DELETE 'https://localhost:9200/_all'
Remplacez http
par https
si vous utilisez un certificat SSL dans votre application.