簡體   English   中英

彈性搜索中的批量數據刪除

[英]Bulk Data Delete in elasticsearch

這是我的代碼:

HTTParty.delete("http://#{SERVER_DOMAIN}:9200/monitoring/mention_reports/_query?q=id:11321779,11321779", { 
    })

我想使用id批量刪除數據,但此查詢不會從elasticsearch中刪除數據

任何人都可以幫我弄清楚如何批量刪除數據?

index_name應該按照代碼中的索引名稱提供。 提供要在數組中刪除的ID(1,2,3)。

CGI :: escape是URL編碼器。

HTTParty.delete "http://#{SERVER_DOMAIN}:9200/index_name/_query?source=#{CGI::escape("{\"terms\":{\"_id\":[1,2,3]}}")}"

這實際上使用了elasticsearch的查詢api刪除。

如果您使用輪胎ruby客戶端連接到elasticsearch,請注意:

id_array = [1,2,3]
query = Tire.search do |search|
        search.query { |q| q.terms :_id, id_array }
      end

index = Tire.index('<index_name>') # provide the index name as you have in your code

Tire::Configuration.client.delete "#{index.url}/_query?source=#{Tire::Utils.escape(query.to_hash[:query].to_json)}"

參考: https//github.com/karmi/tire/issues/309

提供的服務使用: https//www.elastic.co/guide/en/elasticsearch/reference/1.4/docs-bulk.html

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "index1"} }
{ "doc" : {"field2" : "value2"} }

要么

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d '
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
'

請參閱: 如何使用Elasticsearch處理多個更新/刪除?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM