Elasticsearch中可能query多个嵌套对象在不同路径上吗?我可以在一个路径上查询一个嵌套对象,但我找不到正确的语法来查询不同路径上的两个对象。
我需要使用如下逻辑查询:
{'query': {
'bool': {
'must': [
'nested': {
'path': 'Diagnosis',
'query': {
'bool': {
'must': [{'match_phrase': {'Diagnosis.Diagnosis': {'query': "epidemia"}}}]
}
}
},
'nested': {
'path': 'Demographic',
'query': {
'bool': {
'must': [{'match_phrase': {'Demographic.Gender': {'query': "female"}}}]
}
}
}
]
}
}}
最终目标是对我的PostgreSQL数据库数据进行非规范化(72个表,总共超过1600列),并能够对其使用布尔查询。
答案 0 :(得分:11)
它有效,我在nested
查询周围错过了大括号。
正确的方法:
{'query': {
'bool': {
'must': [
{'nested': {
'path': 'Diagnosis',
'query': {
'bool': {
'must': [{'match_phrase': {'Diagnosis.Diagnosis': {'query': "epidemia"}}}]
}
}
}},
{'nested': {
'path': 'Demographic',
'query': {
'bool': {
'must': [{'match_phrase': {'Demographic.Gender': {'query': "female"}}}]
}
}
}}
]
}
}}