私は ElasticSearch が初めてです。 ElasticSearchからデータを削除する方法を見つけようとしています。インデックスを削除しました。しかし、実際にはデータ自体が削除されるわけではありません。私が見た他のものは クエリによる削除 機能を指しています。しかし、私は何を問い合わせるべきかさえわかりません。私は自分の索引を知っています。基本的には、
DELETE FROM [Index]
ChromeのPostManから。しかし、私は運がありません。私が何をしても、データはハングアップするようです。これまでのところ、私はPostManの中でDELETE HTTP動詞を使い、次のようなURLを使うことによってインデックスを削除することに成功した。
http://localhost:9200/[indexName]
しかし、それは実際にデータ(別名docs)自体を削除するようには見えません。
cURL
を使用するか、Elasticsearch用にオープンソース愛好家が作成した多数のツールの1つを使用して視覚的に削除できます。
cURLを使用する
curl -XDELETE localhost:9200/index/type/documentID
例えば.
curl -XDELETE localhost:9200/shop/product/1
その後、これが成功したかどうかについての返信を受け取ります。あなたはまた、インデックスを持つインデックス全体またはタイプを削除することができます、あなたはそのようにドキュメントIDを除外することによってタイプを削除することができます -
curl -XDELETE localhost:9200/shop/product
インデックスを削除したい場合 -
curl -XDELETE localhost:9200/shop
特定の命名規則に従う複数のインデックスを削除したい場合(ワイルドカードである*
に注意してください)、 -
curl -XDELETE localhost:9200/.mar*
視覚的に
上記のようにさまざまなツールがありますが、ここでは説明しませんが、 here にあるすぐに始められるものにリンクします。このツールはKOPFと呼ばれ、あなたのホストに接続するためには左上隅のロゴをクリックしそしてあなたのクラスターのURLを入力してください。
接続すると、クラスタ全体の管理、クラスタの削除、最適化、調整ができるようになります。
あなたがすべてのインデックスを削除する必要があるなら、これは役に立ちます。
curl -X DELETE 'http://localhost:9200/_all'
パワーシェル:
Invoke-WebRequest -method DELETE http://localhost:9200/_all
ドキュメント (または The Definitive Guide )によると、次のクエリでも all のインデックスを削除できます。
curl -XDELETE 'http://localhost:9200/*'
そして重要な注意点があります。
一部の人にとっては、1回のコマンドですべてのデータを削除することは非常に怖い見通しです。偶然の大量削除の可能性を排除したい場合は、
elasticsearch.yml
で以下をtrue
に設定できます。
action.destructive_requires_name: true
にDELETE
リクエストを送信する必要があります
http://[your_Host]:9200/[your_index_name_here]
単一の文書を削除することもできます。
http://[your_Host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]
elastichammer を使用することをお勧めします。
http://[your_Host]:9200/_stats/
を:インデックスはまだ、次のURLに存在する場合は削除した後、あなたが調べることができます
がんばろう!
インデックスを削除すると、マッピングとタイプが削除されます。次のクエリですべての行を削除できます
curl -XDELETE 'localhost:9200/Twitter/Tweet/_query?pretty' -d'
{
"query": {
"match_all":
}
}'
ただし、上記のクエリではElasticsearchの2.0.0-beta1以降のクエリによる削除プラグインをメインAPIから削除する必要があります。
Install delete-by-query plugin
Sudo bin/plugin install delete-by-query
多くのための
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'
kibana をインストールしてください。 Kibanaには、クエリを簡単に構築するのに役立つ、より高性能なdevツールがあります。
次のようにしてpythonでインデックスを削除することができます。
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')
最も簡単な方法!
Endpoint :
http://localhost:9201/Twitter/_delete_by_query
Payload :
{
"query": {
"match": {
"message": "some message"
}
}
}
Twitter
はエラスティック検索のインデックスです。
ref; https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
ここにはたくさんの良い答えがありますが、追加したいこともあります。
クエリによる一括削除には、特別な クエリAPIによる削除 を使用できます。
$ curl -XDELETE 'http://localhost:9200/Twitter/Tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}
面白い人は長い歴史があります。
インデックス全体、doc-type、または特定のidデータを削除できます。これらは3つの方法です:
curl -XDELETE localhost:9200/index_name
curl -XDELETE localhost:9200/index_name/doc-type
curl -XDELETE localhost:9200/index_name/doc-type/documentId
あなたがすべてのインデックスを削除したいなら、そしてワイルドカードのために行きなさい。
Curl -L localhostを使用:9200/_cat/indices - インデックスを一覧表示する
9200:デフォルトポート[他のポートを使用している場合はポートを変更してください]
Logstash-yyyy-mm-dd形式で始まるすべてのインデックスが見つかるはずです(logstash- *)。
これで、すべての索引をリストして使用することができます。
Curl -XDELETE localhost:9200/index_name(データとインデックスの両方が削除されます)。
私はlogstashインデックスを削除したいと思い、curlのようなさまざまなツールに関して多くを検索しました。しかし、最後に解決策を見つけました。 Kibanaにログインしてください。 [開発ツール]タブに移動し、クエリフィールドにDELETE /logstash-*
と入力して緑色の矢印ボタンを押します。 「確認」された場合:応答としてtrue、つまりデータが消去されたことを意味します。
'elasticsearch head'のDELETEアクションを使ってインデックスを削除することもできます( Chromeプラグイン )。それをあなたのクロムに追加してあなたのホストに接続してください。そこにあなたはすべてのあなたのインデックスを見つけるでしょう、そしてあなたがあなたが削除したいインデックスの下にあるアクションボタンをクリックするなら、あなたはドロップダウンの中にDELETEオプションを見つけるでしょう。それをクリックして、ポップアップにDELETEを入力してください。あなたのインデックスは削除されます。 'Elasticsearch head'拡張機能は、インデックスとデータを表示および管理するための簡単な方法です。
curl -X DELETE 'https://localhost:9200/_all'
アプリケーションでSSL証明書を使用している場合は、http
をhttps
に変更します