如何通过elastic4s客户端将json请求发送到Elasticsearch?

时间:2015-06-16 10:21:21

标签: json scala http elasticsearch elastic4s

说我使用这样的代码:

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

如何查看已向Elasticsearch发送了哪些json请求?

2 个答案:

答案 0 :(得分:7)

在Elastic4s 1.6.2中,您可以对许多请求使用show typeclass来获得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)

答案 1 :(得分:0)

我没有找到通过elastic4s客户端跟踪每个请求的内置功能,但是在elastic4s中有一个_builder变量,您可以在执行它之前使用它来打印请求:

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

{
  "from" : 5,
  "size" : 10,
  "query" : {
    "query_string" : {
      "query" : "paris"
    }
  }
}