刪除api允許從特定索引通過id刪除json文檔。有兩種方法,一是通過id刪除,二是通過一個Query查詢條件刪除,符合這些條件的數據都會被刪除。
一、通過id刪除
下面的例子是刪除索引名為twitter,類型為tweet,id為1的文檔:
[java]
view plaincopy
DeleteResponse response = client.prepareDelete("twitter",
"tweet", "1")
.execute()
.actionGet();
二、通過Query刪除
下面的例子是刪除索引名為productIndex,title中包含query的所有文檔:
[java] view plaincopy
QueryBuilder query =
QueryBuilders.fieldQuery("title", "query");
client.prepareDeleteByQuery("productIndex").setQuery(query).execute().actionGet();
設置線程
當刪除api在同一個節點上執行時(在一個分片中執行一個api會分配到同一個服務器上),刪除api允許執行前設置線程模式(operationThreaded選項),operationThreaded這個選項是使這個操作在另外一個線程中執行,或在一個正在請求的線程(假設這個api仍是異步的)中執行。默認的話operationThreaded會設置成true,這意味着這個操作將在一個不同的線程中執行。下面是設置成false的方法:
[java] view plaincopy
DeleteResponse response =
client.prepareDelete("twitter", "tweet", "1")
.setOperationThreaded(false)
.execute()
.actionGet();
如刪除全部數據,可使用matchAllQuery