Как получить данные о попаданиях изasticsearch в Java - PullRequest
0 голосов
/ 17 января 2019

У меня есть ответasticsearch, хранящийся в виде строкового значения в Java, как обрабатывать только попадания данных

Ответы [ 3 ]

0 голосов
/ 20 января 2019

Например, вы хотите получить все данные типа Car. Ваш ответ на запрос сохраняется в переменной searchResponse, получает все попадания и сериализует их для объектов. Посмотрите на пример ниже:

Gson gson = new Gson();

var flowers = new ArrayList<Flower>();

Arrays.stream(searchResponse.getHits().getHits()).forEach(hit ->
                    cars.add(gson.fromJson(hit.getSourceAsString(), Car.class)));

Конечно, я использую gson для сериализации JSON в объект.

0 голосов
/ 20 января 2019

Сначала необходимо преобразовать строку json в объект json / map, используя gson, Jackson или другой метод.

Затем, когда у вас есть карта, попадания находятся под ключом: hit.hits, поскольку в качестве массива карт каждая карта в массиве представляет собой хит с его метаданными. Оригинальный документ находится под ключом _source в каждом обращении.

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

0 голосов
/ 17 января 2019

Лучший способ получить к нему доступ через Java - использовать официальный Java REST API от Elastic. API позволит вам работать с объектами Java вместо самостоятельной обработки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...