У меня есть поле contacts
в моих документах в Elasticsearch. каждый элемент внутри поля contacts
сам является объектом. Я хочу использовать фильтр term
или terms
в поле contacts
, чтобы оно соответствовало документам, где contacts.province_id
равно X
. Я пробовал contacts.province_id
в качестве поля поиска, но это не работает. Как мне фильтровать такие поля?
"contacts":
[
{
"id": 1,
"address": "address1",
"tel": "40 07 13 22",
"doctor_id": 1,
"type_id": 1,
"lng": "51.374720",
"lat": "35.781986",
"city_id": 186,
"province_id": 8,
"hour_about": null,
"place_name": null
},
{
"id": 2,
"address": "address2",
"tel": null,
"doctor_id": 1,
"type_id": 2,
"lng": "51.520313",
"lat": "35.726983",
"city_id": 186,
"province_id": 8,
"hour_about": null,
"place_name": null
},
{
"id": 3,
"address": "address3",
"tel": null,
"doctor_id": 1,
"type_id": 2,
"lng": "51.456368",
"lat": "35.797505",
"city_id": 186,
"province_id": 8,
"hour_about": null,
"place_name": null
}
]
ИЗМЕНИТЬ:
Я пробовал этот запрос:
GET /index_name/type_name/_search
{
"query": {
"filtered": {
"filter": {
"term": {
"contacts.province_id": 8
}
}
}
}
}
но он возвращает 3 результатов, я ожидаю 5 результатов. в чем проблема?
Спасибо за вашу помощь.