您好,登錄后才能下訂單哦!
如何分析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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。