你可以用
Java Low Level REST Client
并通过以下方法直接将查询正文作为字符串传递:
request.setJsonEntity("{\"json\":\"text\"}");
一般来说,低级REST客户端应该更快一些,因为它不会序列化请求或解析响应。缺点是需要额外的代码,这些查询字符串可能更难维护。也就是说,我知道您更喜欢直接将查询体作为字符串传递,因为高级rest客户机有点不直观,而且设计过度。
低级REST客户端为您提供了跨可用节点和故障切换机制的负载平衡,高级REST客户端在后台使用它。
您也可以使用任何HTTP客户端直接与Elasticsearch实例对话。我曾经在一个c#项目中工作,在我们意识到高层带来的开销之后,我们就这样做了。NET客户端是认真的,因为它使用了大量的反射。然后,您必须实施自己的负载平衡或故障切换策略。