Парсинг данных через GET запрос Elasticsearch

301
22 марта 2017, 15:54

Не понятно как сформировать запрос к базе Elasticsearch. на официальном сайте пример запроса

GET /bank/_search
{
  "query": { "match_all": {} }
}

Непонятен синтаксис запроса, то есть информация в фигурных скобках(формирующая критерии запроса, необходимые поля, значения) каким образом её отправлять через GET запрос и возможно ли вообще полученные JSON-поля распарсить в JAVA

Answer 1

Синтаксис запросов описан в разделах документации Request Body Search и Query DSL.

Если вас смущает именно наличие тела у GET-запроса, это не запрещено протоколом HTTP.

Для отправки запроса у вас есть в принципе два основных варианта:

  1. Формировать JSON-строку вручную либо с использованием одной из бибилиотек для работы с JSON (Jackson, google-gson) и отправлять GET-запрос любым HTTP клиентом: стандартным java.net.URLConnection либо чем-то сторонним (Apache HttpComponents, Async Http Client). После чего все той же JSON-библиотекой разбирать ответ.

  2. Воспользоваться готовым Java-клиентом к API, предоставляющим удобные обертки. С его использованием выполнение запроса из вашего примера будет выглядеть так:

    SearchResponse response = client.prepareSearch(QueryBuilders.matchAllQuery())
                                    .setQuery()
                                    .get();
    

    В таком варианте вам совсем не придется иметь дела с JSON и HTTP.

READ ALSO
java.net.SocketException: Обрыв канала (Write failed)

java.net.SocketException: Обрыв канала (Write failed)

Добрый день, товарищиДелаю штуку для обмена файлами с сервером и при записи с клиента приходит такая ошибка:

442
Экспорт Jar из Android Studio для Unity3d

Экспорт Jar из Android Studio для Unity3d

Подобный вопрос уже задавался, но был незаслуженно забытБолее того, на EnSO есть ответ на этот вопрос, но за 2013 год и сейчас он не работает

358
Многопоточность в Java

Многопоточность в Java

Вопрос опытным программистам, которые много работали с потокамиЕсть классы CountDownLatch, CyclicBarrier, Semaphore, Phaser

429