У меня есть набор документации (давайте назовем их books
), которые имеют подмножество информации (скажем, editions
), структуры данных, несколько похожее на это:Как вернуть частичный документ из запроса/фильтра Elasticsearch?
"book": {
"author": "A. N. Author",
"title": "Fantastic Queries and How to Index Them"
"editions": [
{
"publisher":"penguin",
"isbn": 124161256653,
"coverArtist":"Pain T Brush",
"amazonPrice":65.50
},
{
"publisher":"orbit",
"isbn": 124163526653,
"coverArtist":"Pain T Brush",
"amazonPrice":25.99
},
{
"publisher":"tor",
"isbn": 124169876353,
"coverArtist":"Pen See Il",
"amazonPrice":700.00
}
]
}
права теперь с запросами, которые у меня есть (поиск по editions.publisher
или editions.isbn
), я возвращаю весь документ, включая выпуски, которые не соответствуют результатам запроса. Таким образом, чтобы быть ясным, если я ищу coverArtist
для Pain T Brush
, данные я хочу Возвращается:
"book": {
"author": "A. N. Author",
"title": "Fantastic Queries and How to Index Them"
"editions": [
{
"publisher":"penguin",
"isbn": 124161256653,
"coverArtist":"Pain T Brush",
"amazonPrice":65.50
},
{
"publisher":"orbit",
"isbn": 124163526653,
"coverArtist":"Pain T Brush",
"amazonPrice":25.99
}
]
}
То же самое с другими запросами. Если я ищу конкретный isbn
, я хочу, чтобы его данные возвращались. Если я задаю диапазон цен > 500
, я бы хотел только последнее издание (конечно же, вместе с информацией об авторе и названии). И, наконец, если я ищу Fantastic Queries and How to Index Them
в title
, я хочу, чтобы весь документ был возвращен со всей информацией об издании, поскольку я не указывал ничего конкретного для издания.
Я не знаю, как сделать запросы «развернуть» на определенные объекты в документе, так ли это возможно?
Будет ли он вернуть как родительский объект, а также соответствующие документы ребенка, когда я выполняю поиск имеет и ребенка? Эта страница не указывает, что она возвращает. – IronWaffleMan
Я не уверен. Почему бы не сделать быстрый эксперимент и не увидеть? Хуже всего то, что вы можете выполнить два поиска, чтобы получить оба необходимых вам документа: родительский и дочерний. –
Я сделал тест, к сожалению, ни один из запросов не получил как родительский, так и дочерний объект. Однако, если запрос возвращает дочерний элемент, он неизбежно имеет свойство '_parent', которое я могу использовать в поиске' _id' для возврата родительского документа, поэтому этого должно быть достаточно. Я согласен с вашим ответом, спасибо :) – IronWaffleMan