是否有一种方法可以锁定Solr6或Solr7中用于编辑/删除的特定文档?例如,我阅读了一个文档,根据它的内容,我看到它应该被更新或删除。然后发送更新/删除查询。但是,从我读取文档的那一刻到发送查询的那一刻,我想确保文档没有被其他进程更新或删除--“锁定”它用于任何编辑。有办法吗?
发布于 2019-05-01 21:57:34
您可以在Solr中使用乐观并发特性。
实际上,在请求中包含来自文档的_version_字段的值。如果所包含的_version_值与文档中的值不匹配(即,自检索文档以来文档已被更新),则更新失败并返回409HTTP错误代码。
_version_字段中给出的值可以指定您想要的行为:
如果
_version_字段中的内容大于'1‘(即'12345'),那么文档中的_version_必须与索引中的_version_匹配。 如果_version_字段中的内容等于“1”,那么文档就必须简单地存在。在这种情况下,不会发生版本匹配,但是如果文档不存在,更新将被拒绝。 如果_version_字段中的内容小于“0”(即'-1'),那么文档就不存在。在这种情况下,不会发生版本匹配,但是如果文档存在,更新将被拒绝。 如果_version_字段中的内容等于“0”,那么版本是否匹配或文档是否存在并不重要。如果它存在,它将被覆盖;如果它不存在,它将被添加。
https://stackoverflow.com/questions/55942285
复制相似问题