Как отследить запрос json, отправленный в Elasticsearch через клиента astic4s?

Скажите, что я использую такой код:

ElasticClient client = ...
client.execute{search in "places"->"cities" query "paris" start 5 limit 10}

Как узнать, какой запрос json был отправлен в Elasticsearch?

2 ответа

Решение

В Elastic4s 1.6.2 вы можете использовать класс show typec для нескольких запросов, чтобы получить JSON-эквивалент.

Это довольно просто.

val req = search in "index" / "type" query "kate bush"
logger.debug(s"Search request ${req.show}")

.show Метод будет отображать вывод в формате JSON. Это работает на большинстве типов запросов.

В Elastic4s 5.2.0+ вы используете show метод на клиенте.

val req = search("index" / "type").query("kate bush")
client.show(req)

Я не нашел встроенной функции для отслеживания каждого запроса через клиента astic4s, но есть _builder переменная в astic4s, которую можно использовать для печати запроса перед его выполнением:

println(search in "places"->"cities" query "paris" start 5 limit 10 _builder) toString

{
  "from" : 5,
  "size" : 10,
  "query" : {
    "query_string" : {
      "query" : "paris"
    }
  }
}
Другие вопросы по тегам