gpt4 book ai didi

elasticsearch - 删除父项不正确的操作仍然成功

转载 作者:行者123 更新时间:2023-12-03 00:27:28 24 4
gpt4 key购买 nike

在Elasticsearch中,我为文档类型定义了_parent映射(我们将其称为homes),并对一些文档进行了索引。它们似乎已正确索引,因为当我搜索带有满足某些条件的 child 的 parent (使用has_child)时,将返回预期的结果。

“问题”是,当我为像...这样的 child 发出删除时...

curl -XDELETE 'http://localhost:9200/test/homes/1?parent=11'

即使ID为 homes1文档的父级不是 11,它也会成功。

这是预期的行为吗?

根据我对 Elasticsearch delete API docs的理解,在这种情况下不必删除该文档(但这不是我所看到的)...

The parent parameter can be set, which will basically be the same as setting the routing parameter.

...

Issuing a delete without the correct routing, will cause the document to not be deleted.

最佳答案

路由(由父级决定)决定使用什么分片。在ES 1.0中,DB知道需要父对象仍然仅使用它来决定在哪里寻找。如果对象存在,它将被删除,但是父对象是否为“真正的父对象”并不重要。重要的是父级的哈希结果相同。

您可以使用父键或使用幻想键完美地创建冲突数据(不同分片上的索引/类型/标识相同)-分片越多,冲突的可能性就越大不太可能成为,但这并不安全。请记住:parent不是外键,也不是像SQL世界中一样强的东西。

关于elasticsearch - 删除父项不正确的操作仍然成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22744063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com