我在我的ElasticSearch服务中存储了类似于以下内容的文档:
[
{
"first_name": "John",
"last_name": 'Dow',
"statuses": [
{
"name": "STAT1",
"start_date":"2022-10-21T21:03:06",
"happy": false
},
{
"name": "STAT2",
"start_date":"2022-10-21T21:03:06",
"happy": true
},
]
}
...
]
我的UI中有一个组件,用户可以在其中选择所需的过滤器,以应用于数据。first_name == "John" & last_name== 'Doe'
在用户选择了所需的过滤器后,我将创建一个类似于以下内容的查询:
"query": {
"bool": {
"must": [
{
"regexp": {
"first_name": {
"value": ".*John.*"
}
},
"regexp": {
"last_name": {
"value": ".*Doe.*"
}
},
}
],
"should": []
}
}
现在我有一个新的要求,我需要允许过滤文档如下:
显示文档,其中:
statuses.name === STAT1 & statuses.happy === false
and
statuses.name === STAT2 & statuses.happy === true
and
first_name === Jhon
我没有找到任何例子如何达到这一要求,任何帮助将不胜感激
1条答案
按热度按时间ozxc1zmp1#
您可以从这个查询开始。阅读更多关于nested queries的信息。