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的工作方式所致。如果可以的话,将文档分割成单独的索引并删除整个索引是一种很好的做法,但根据用例,这并非总是可行。您可以发出删除文档而不检查文档是否存在;响应表明文档是否被找到。 –