Мы ищем по следующим полям в индексе:Override в Elasticsearch
- individual_name (строка)
- organisation_name (строка)
- профиль (строка)
- мест (строка)
- общенациональная (булева)
Если пользователь ищет «оптику» в «Гамильтоне», и оптики в нашем индексе перечислил себя как «общенациональные» (но не конкретно в Гамильтоне), желаемое поведение что оптик будет отображаться с результатами Гамильтона - фактически игнорируя требование местоположения.
В настоящее время мы выполняем запрос 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
.