gpt4 book ai didi

elasticsearch - Elasticsearch仅与过滤器匹配

转载 作者:行者123 更新时间:2023-12-03 01:33:47 25 4
gpt4 key购买 nike

我们有一个 Multi-Tenancy 索引,只需要针对单个租户对索引执行查询。基本上,对于所有与过滤器匹配的文档,请返回与以下查询匹配的所有文档,但不包括仅与过滤器匹配的文档。

例如,假设我们有如下文档文档列表:

{ _id: 1, account_id: 1, name: "Foo" }
{ _id: 2, account_id: 2, name: "Bar" }
{ _id: 3, account_id: 2, name: "Foo" }

我以为这个查询可以用,但是不能用:
{
"bool": {
"filter": { "term": { "account_id": 2 } },
"should": [
{ "match": { "name": "Foo" }
]
}
}

它返回匹配 account_id: 2的两个文档:
{ _id: 3, account_id: 2, name: "Foo", score: 1.111 }
{ _id: 2, account_id: 2, name: "Bar", score: 0.0 }

我真正想要的只是返回文件 _id: 3,它基本上是“account_id等于2的所有文件中,仅返回名称与Foo匹配的文件”。

如何使用ES 6.2做到这一点?需要注意的是,并非总是知道 shouldmust匹配条件的数量,我真的想避免使用 minimum_should_match

最佳答案

请尝试以下操作:只需将should替换为must:

{
"bool": {
"filter": { "term": { "account_id": 2 } },
"must": [
{ "match": { "name": "Foo" }
]
}
}

关于elasticsearch - Elasticsearch仅与过滤器匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026586/

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