Elasticsearch - как вернуть только данные, а не метаинформацию?

При выполнении поиска Elasticsearch возвращает структуру данных, которая содержит различную метаинформацию.

Фактический набор результатов содержится в пределах «хитов» поле в результате JSON, возвращенное из базы данных.

Может ли Elasticsearch возвращать только необходимые данные (содержимое поля «совпадения») без встраивания во все остальные метаданные?

Я знаю, что могу проанализировать результат в JSON и извлечь его, но мне не нужны сложности, хлопоты, снижение производительности.

Спасибо!

Вот пример структуры данных, которую возвращает Elasticsearch.

{
    "_shards":{
        "total" : 5,
        "successful" : 5,
        "failed" : 0
    },
    "hits":{
        "total" : 1,
        "hits" : [
            {
                "_index" : "twitter",
                "_type" : "tweet",
                "_id" : "1", 
                "_source" : {
                    "user" : "kimchy",
                    "postDate" : "2009-11-15T14:12:12",
                    "message" : "trying out Elastic Search"
                }
            }
        ]
    }
}
 The Demz01 мар. 2016 г., 19:39
 Sandeep Kanabar03 янв. 2018 г., 18:10
 Dror10 сент. 2014 г., 13:40
Я считаю, что возможность контролировать то, что возвращает ES, является важной особенностью. Например, если кто-то хочет включить результаты, возвращенные ES, в воспроизводимый документ.

Ответы на вопрос(2)

Вы можете по крайней мере отфильтровать результаты, даже если вы не можете извлечь их. & Quot;общие варианты& Quot; страница REST API объясняет «filter_path» вариант. Это позволяет вам фильтровать только те части дерева, которые вас интересуют. Структура дерева остается той же, но без дополнительных метаданных.

Я обычно добавляю опцию запроса:

&filter_path=hits.hits.*,aggregations.*

Документация ничего не говорит об этом, что делает ваш запрос более быстрым (я сомневаюсь, что это так), но, по крайней мере, вы могли бы вернуть только интересные части.

Corrected to show only hits.hits.*, since the top level "hits" has metadata as well.
 24 мая 2018 г., 12:08
Просто чтобы добавить больше информации: filter_path (фильтрация ответов) не работает для версии 1.5asticsearch. Если его не переместить в документацию или не переименовать, он был впервые добавлен в версии 1.6:elastic.co/guide/en/elasticsearch/reference/1.6/…
Решение Вопроса

Нет, в данный момент это невозможно. Если производительность и сложность синтаксического анализа являются основными проблемами, вы можете рассмотреть возможность использования различных клиентов:Java-клиент или жеThrift плагин, например.

 11 июл. 2014 г., 13:14
"Нет, это невозможно в данный момент" ... поскольку изменившийся момент должен ли / может быть обновлен ответ? :)

Ваш ответ на вопрос