如何从 Rails 中的 elasticsearch 中删除不存在的文档?

Mar*_*oda 1 ruby-on-rails elasticsearch elasticsearch-model

在模型类中,我有以下代码来删除 ElasticSearch 中的索引文档(根据文档

after_commit on: [:destroy] do
  __elasticsearch__.delete_document rescue nil
end
Run Code Online (Sandbox Code Playgroud)

我用来rescue nil捕获 ElasticSearch 在找不到文档时引发的 404 异常。

问题是异常仍然冒出来,rescue nil代码没有捕获它。

如何删除ElasticSearch中的文档,无论它是否存在?

Val*_*Val 5

您可以在调用中使用该:ignore参数delete_document来忽略 404 错误。

after_commit on: [:destroy] do
  __elasticsearch__.delete_document ignore: 404
end
Run Code Online (Sandbox Code Playgroud)