我们搜索索引中的以下字段:
如果用户在“汉密尔顿”中搜索“验光师”,并且我们索引中的验光师已将自己列为“全国范围内”(但在汉密尔顿中没有具体说明),则理想的行为是验光师会出现汉密尔顿结果 - 有效地忽略了位置要求。
我们目前正在运行multi_match
查询,其中一个示例如下。
{
"query": {
"filtered" : {
"query" : {
"multi_match": {
"query": "optometrist",
"zero_terms_query": "all",
"operator": "and",
"fields": [
"individual_name^1.2",
"organisation_name^1.5",
"profile",
"accreditations"
]
}
},
"filter": {
"and": [{
"term": {
"locations" : "hamilton"
}
}],
}
}
}
}
如何修改此内容,以便为此查询返回包含"nationwide": "yes"
的文档,无论其位置如何?
我在or
下尝试了and
查询,但当然忽略了multi_match
。
答案 0 :(得分:1)
我认为这会给你带来理想的结果:
{
"query": {
"filtered" : {
"query" : {
"multi_match": {
"query": "optometrist",
"zero_terms_query": "all",
"operator": "and",
"fields": [
"individual_name^1.2",
"organisation_name^1.5",
"profile",
"accreditations"
]
}
},
"filter": {
"or": [
{"term": {"locations" : "hamilton"}},
{'term' : {'nationwide' : 'yes'}}
],
}
}
}
}