Поиск документов в asticsearch, а затем запросить вложенные поля
У меня есть такой индекс:
{
"rentals": {
"aliases": {},
"mappings": {
"rental": {
"properties": {
"address": {
"type": "text"
},
"availability": {
"type": "nested",
"properties": {
"chargeBasis": {
"type": "text"
},
"date": {
"type": "date"
},
"isAvailable": {
"type": "boolean"
},
"rate": {
"type": "double"
}
}
}
}
И это мой вариант использования:
Мне нужно искать все "прокаты", которые имеют данный адрес.
- Это легко и сделано
Мне нужно получить данные о "доступности" для всех этих "прокатов", которые искали; только на сегодняшнюю дату.
- Это та часть, в которой я застрял, как я могу запросить вложенные документы всех "прокатов"?
1 ответ
Вам нужно использовать вложенный запрос:
Поскольку вложенные объекты индексируются как отдельные скрытые документы, мы не можем запрашивать их напрямую. Вместо этого мы должны использовать вложенный запрос для доступа к ним.
Попробуйте что-то вроде:
{
"query": {
"nested": {
"path": "availability",
"query": {
"term": {
"availability.date": "2015-01-01"
}
}
}
}
}