gpt4 book ai didi

elasticsearch - 在 ElasticSearch 中,我如何检查数组中的值是否匹配

转载 作者:行者123 更新时间:2023-11-29 02:56:17 24 4
gpt4 key购买 nike

在 ElasticSearch 中,我有以下文档结构...

{
name: "bob",
permissions: [
2,
4,
6
]
}

我需要能够执行搜索以检查给定数组中是否包含“bob”的权限。

例如我有一个包含内容的数组

[1,2,3,4,5,6]

我需要返回“bob”文档,因为我的数组包含 2,4,6,“bob”也是如此

如果我的数组包含 1,3,4,5,6 “bob”不应该被选中,因为我的数组不包含“2”

本质上,我想匹配所有权限条目都包含在我的数组中的文档。

最佳答案

您的用例基本上是“对于一组权限(特定用户拥有),找到所有只需要该组权限的文档。”

一个解决方案是提供一个实现“对于一组权限,找到不需要任何其他权限的所有文档。”

假设可以随时检索所有可能的权限值*,您可以获得该列表,删除当前用户拥有的值,并将每个剩余值放入 bool 过滤器的“must_not”项中。

即使有大量可能的权限,搜索操作也会非常快,因为这些术语过滤器会被缓存。

*如果没有其他方法可以可靠地找到所有可能的权限值,您可以对权限进行术语聚合以查找所有当前索引值。

关于elasticsearch - 在 ElasticSearch 中,我如何检查数组中的值是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29563645/

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