分佈式搜索elasticsearch java API 之(四)------刪除索引數據

       刪除api允許從特定索引通過id刪除json文檔。有兩種方法,一是通過id刪除,二是通過一個Query查詢條件刪除,符合這些條件的數據都會被刪除。

一、通過id刪除

下面的例子是刪除索引名爲twitter,類型爲tweet,id爲1的文檔:

DeleteResponse response = client.prepareDelete("twitter", "tweet", "1") 
        .execute() 
        .actionGet();

二、通過Query刪除

下面的例子是刪除索引名爲productIndex,title中包含query的所有文檔:

QueryBuilder query = QueryBuilders.fieldQuery("title", "query");
      client.prepareDeleteByQuery("productIndex").setQuery(query).execute().actionGet();

設置線程
       當刪除api在同一個節點上執行時(在一個分片中執行一個api會分配到同一個服務器上),刪除api允許執行前設置線程模式(operationThreaded選項),operationThreaded這個選項是使這個操作在另外一個線程中執行,或在一個正在請求的線程(假設這個api仍是異步的)中執行。默認的話operationThreaded會設置成true,這意味着這個操作將在一個不同的線程中執行。下面是設置成false的方法:

DeleteResponse response = client.prepareDelete("twitter", "tweet", "1") 
        .setOperationThreaded(false) 
        .execute() 
        .actionGet();

官方文檔:
http://www.elasticsearch.org/guide/reference/api/delete.html
http://www.elasticsearch.org/guide/reference/java-api/delete.html

發佈了68 篇原創文章 · 獲贊 158 · 訪問量 75萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章