我在ElasticSearch中有一个索引叫做 professor
如果是交叉场,我需要“和”条件
对于相同的字段数组,我需要
我需要搜查一下 subject
哪个是 Physics
或者 Accounting
这是字段数组(或)语句
我需要搜查一下 type
是 Permanent
(&)条件
我需要搜查一下 Location
是 NY
(&)条件
有可能{type':['contract','guest']}类型也作为列表出现
test = [{'id':1,'name': 'A','subject': ['Maths','Accounting'],'type':'Contract', 'Location':'NY'},
{ 'id':2,'name': 'AB','subject': ['Physics','Engineering'],'type':'Permanent','Location':'NY'},
{'id':3,'name': 'ABC','subject': ['Maths','Engineering'],'type':'Permanent','Location':'NY'}]
下面是查询,第三个得到了,怎么添加 1 and 2
```
content_search = es.search(index="professor", body={
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": [
{
"term": {
"Location.keyword": "NY"
}
}
]
}
}
})
content_search ['hits']['hits']
预期输出为id `[{ 'id':2,'name': 'AB','subject': ['Physics','Engineering'],'type':'Permanent','Location':'NY'}]`
1条答案
按热度按时间wfsdck301#
您需要使用bool查询来 Package 所有条件
添加一个工作示例,其中包含索引数据(与所讨论的相同)、搜索查询和搜索结果
搜索查询:
搜索结果: