首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >弹性搜索-查询两个数组的交集不为空的文档

弹性搜索-查询两个数组的交集不为空的文档
EN

Stack Overflow用户
提问于 2017-08-24 22:30:18
回答 1查看 289关注 0票数 1

我的文档结构如下:

代码语言:javascript
复制
{ 
    "documentId": 123,
    "someOtherInfo": {...}
    "permissions": ["a", "b, ..., "g"]
}

用户本身有一个权限集["x", "y", "z"]业务规则:当且仅当至少有一个用户权限与文档权限匹配时,才允许用户A查看文档X。或者从数学上讲,如果交集不为空-

代码语言:javascript
复制
["a", "b, ..., "g"] ∩ ["x", "y", "z"] ≠ ∅

我正在建立一个搜索引擎,需要找到所有文件的用户有权访问。我想将它存储在Elastic Search中,以获得它提供的所有强大的查询功能,但是如何使用ES DSL添加权限限制?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 01:05:45

您需要一个terms query,其中可以传递要匹配其元素的数组。这与包含任何所提供术语的文档相匹配。例如,以下内容将匹配包含权限= "a","b","c“但不包含权限= "a","t","c”的文档

代码语言:javascript
复制
{
  "query": {
    "terms": {
      "permissions": [
        "x",
        "y",
        "z",
        "b"
      ]
    }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45864297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档