我在这个查询中搜索所有匹配的文档 type: location
然后使用精确匹配对结果应用过滤器 postalCode
以及 countryCode
但是一个前缀 address
.
过滤器工作正常,表现为 AND
条件,即所有3个匹配项。如何实现 OR
过滤器的状况?与 OR
条件-即使一个筛选器匹配,它也应该返回结果。
elasticsearch 7.9版
GET index/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"type": "location"
}
}
],
"filter": [
{
"term": {
"postalCode": "12345"
}
},
{
"prefix": {
"address": "555"
}
},
{
"term": {
"countryCode": "US"
}
}
]
}
}
}
1条答案
按热度按时间a0zr77ik1#
你可以用bool的组合
should
中的子句filter
条款。添加索引数据、搜索查询和搜索结果的工作示例
索引数据:
搜索查询:
搜索结果: