如何分析Elasticsearch Document Delete API,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
這里將重點介紹ElasticSearch Doucment Delete API
從《ElasticSearch Client詳解》可知,ElasticSearch Delete Rest Hign level Delete Api聲明如下:
public final DeleteResponse delete(DeleteRequest deleteRequest, RequestOptions options) throws IOException
public final void deleteAsync(DeleteRequest deleteRequest, RequestOptions options, ActionListener<DeleteResponse> listener)
上述兩個API,一個同步調用,一個異步調用,同步調用方法直接組裝DeleteResponse 并返回,而異步方法通過回調ActionListener,并將執行結果(DeleteResponse)傳入回調方法。DeleteRequest 需要的請求參數在IndexRequest、GetRequest中都已提及,本節就無需再對其進行分析。
1、Delete API示例
public static void testDelete() {
RestHighLevelClient client = EsClient.getClient();
try {
DeleteRequest request = new DeleteRequest("twitter", "_doc", "1");
DeleteResponse result = client.delete(request, RequestOptions.DEFAULT);
System.out.println(result);
} catch(Throwable e) {
e.printStackTrace();
} finally {
EsClient.close(client);
}
}返回示例:
{
"_shards" : {
"total" : 2,
"failed" : 0,
"successful" : 1
},
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_primary_term": 1,
"_seq_no": 5,
"result": "deleted"
}2、深入Delete API內部實現機制
2.1 版本管理
索引的每個文檔都是版本化的。在一個文檔上執行的每一個寫操作,包括刪除,都會導致它的版本增加。被刪除的文檔的版本號在刪除后的短時間內仍然可用,以允許對并發操作進行控制(基于版本的樂觀鎖控制)。被刪除的文檔版本保留的時間由配置項index.gc_deletes決定,默認時間為60s。
2.2 自動創建索引
執行一個文檔的刪除操作,如果索引不存在,默認情況下也會自動創建索引,其創建索引的控制邏輯在《Elasticsearch Document Index API詳解、原理與示例》中已詳細描述,再次不重復。
看完上述內容,你們掌握如何分析Elasticsearch Document Delete API的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。