У меня есть такой индекс:ElasticSearch: запрос вложенные объекты, которые спичка фильтр
{
"id":2,
"name":"test home",
"city_id":"31",
"county_id":"1",
"zip_code":"123",
"residencePlans":[
{
"id" : 1,
"unit_price_from":480240,
"bathrooms_count":3,
"interior_area_sqrft":23,
"floor_range_hight":5,
"bedrooms_count":5,
"elevator_type_id":4,
"price_psqft":3756,
},
{
"id" : 2,
"unit_price_from":123456,
"bathrooms_count":1,
"interior_area_sqrft":12,
"floor_range_hight":4,
"bedrooms_count":2,
"elevator_type_id":3,
"price_psqft":1234,
}
],
}
И тогда я использую некоторые фильтры. Некоторые из них применяются к верхнему объекту, а некоторые - к вложенности.
Мне нужно запросить residencePlans, что соответствует фильтру, применяется для их. например, фильтр на residencePlans.bathrooms_count> = 3 должен возвращать только место жительства с ID = 1 и не 2.
{
"id": [2],
"residencePlans.id": [1]
}
Я пометил residencePlans как вложен отображение, но это не помогает.
Вы имеете в виду * residencePlans.unit_price_from> = 300000 *? Оба ** проживанияPlans ** в вашем примере имеют «unit_price_from» больше 3. – BrookeB
Моя опечатка. Я имею в виду ** bathroom_count **. – ErickSkrauch