0
我有以下電話:ElasticSearch調用DocumentExists觸發異常(C#)
var Exists = Driver.DocumentExists<Mydata>(Id).Exists;
它檢查是否存在的文件與ID作爲參數傳遞。 呼叫行爲與預期相同,但它會拋出一些例外抓住,但出現在每次調用調試器在未找到文件:
Exception: Exception thrown: 'System.Net.WebException' in System.dll
("The remote server returned an error: (404) Not Found.").
Exception thrown: 'System.Net.WebException' in System.dll
("The remote server returned an error: (404) Not Found.")
這使得運行在調試器出奇的慢的代碼。我錯過了什麼,或者它是否是預期的行爲?
我瞭解背後的邏輯;問題在於它使代碼必須刪除大量可能/不可能存在的文檔,而且速度太慢。在我們的情況下,我們有時候必須刪除數以萬計的文檔,而且速度很慢,導致彈性搜索完全無法使用,這很令人難過,因爲搜索非常出色。 – Thomas
相對而言,刪除數以萬計的文檔是Elasticsearch中表現最差的操作,這是由於Lucene的工作方式所致。如果可以的話,將文檔分割成單獨的索引並刪除整個索引是一種很好的做法,但根據用例,這並非總是可行。您可以發出刪除文檔而不檢查文檔是否存在;響應表明文檔是否被找到。 –