我在ElasticSearch中有一个索引叫做 professor
如果是交叉场,我需要“和”条件
对于相同的字段数组,我需要
我需要搜查一下 BusinessArea
哪个是 Research
或者 Accounting
这是字段数组(或)语句
和
我需要搜查一下 Role
是 Developer
或者 Tester
条件这是字段数组(or)语句
和
我需要搜查一下 Location
是 NY
(&)条件
test = [{ 'id': '1', 'name': 'Group1', 'BusinessArea': [ { 'id': '14', 'name': 'Accounting' }, { 'id': '3', 'name': 'Accounting' } ],'Designation': [ { 'id': '16', 'name': 'L1' }, { 'id': '20', 'name': 'L2' }, { 'id': '25', 'name': 'L2' }, ] }, { 'id': '2', 'name': 'Group1', 'BusinessArea': [ { 'id': '14', 'name': 'Research' }, { 'id': '3', 'name': 'Accounting' } ], 'Role': [ { 'id': '5032', 'name': 'Tester' }, { 'id': '5033', 'name': 'Developer' } ], 'Designation': [ { 'id': '16', 'name': 'L1' }, { 'id': '20', 'name': 'L2' }, { 'id': '25', 'name': 'L2' }, ] }, { 'id': '1', 'name': 'Group1', 'BusinessArea': [ { 'id': '14', 'name': 'Research' }, { 'id': '3', 'name': 'Engineering' } ], 'Role': [ { 'id': '5032', 'name': 'Developer' }, { 'id': '5033', 'name': 'Developer' } ], 'Designation': [ { 'id': '16', 'name': 'L1' }, { 'id': '20', 'name': 'L2' }, { 'id': '25', 'name': 'L2' }] }]
下面是查询,第三个得到了,怎么添加 1 and 2
```
content_search = es.search(index="professor", body={
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": [
{
"term": {
"Location.keyword": "NY"
}
}
]
}
}
})
content_search ['hits']['hits']
2条答案
按热度按时间dm7nw8vv1#
可以像这样使用bool查询:
ilmyapht2#
我需要搜索的位置是纽约(&)条件
我没有添加这个条件,因为没有名为
Location
在您的示例数据中请尝试以下查询:
搜索查询:
搜索结果: