У меня есть запрос bool с фильтром geo_distance для вложенного свойства, и я пытаюсь просмотреть inner_hits, которые соответствуют этому фильтру.
Вот базовая структура моего запроса (опущено многоиз других частей, которые действительно сопоставляют имя, телефон и т. д.):
{
"query": {
"function_score": {
"score_mode": "multiply",
"query": {
"bool": {
"minimum_should_match": 1,
"filter": [
{
"nested": {
"inner_hits": {},
"path": "locations",
"query": {
"geo_distance": {
"distance": "100mi",
"locations.addresses.lat_lon": {
"lat": 36.1626638,
"lon": -86.7816016
}
}
}
}
}
],
"should": {
"nested": {
"path": "users",
"query": {
"bool": {
"minimum_should_match": 1,
"filter": [
{
"term": {
"users.deleted": {
"value": false,
"boost": 0
}
}
}
],
"should": [
{
"common": {
"users.name": {
"query": "Dr. Bob Belcher, M.D.",
"cutoff_frequency": 0.01,
"boost": 2
}
}
}
]
}
},
"inner_hits": {
"highlight": {
"fields": {
"users.name": {}
}
}
}
}
}
}
},
"functions": [
{
"gauss": {
"locations.addresses.lat_lon": {
"origin": {
"lat": 36.1626638,
"lon": -86.7816016
},
"scale": "7.5mi",
"offset": "3mi"
}
}
}
]
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
У меня есть блок, уже получающий внутренние попадания из вложенного свойства "users", и он отлично работает, когда я получаю совпадения для пользователяname.
Это потому, что в запросе geo_distance нечего выделять?