如何使用 Java 中的 JSON 进行 Elasticsearch 查询?

How to make an Elasticsearch query with a JSON in Java?

我正在尝试使用 JavaElasticsearch 进行 Elasticsearch 搜索。 Elastic search 为 Java 提供了 API,这很酷。

问题是,我希望在 Java 中创建一个方法,该方法接收一个字符串(正确地说,是一个包含搜索信息的 JSON ),该字符串将此 HTTP 调用反映到 Elasticsearch

curl -X GET 'http://localhost:9200/geocon/_search?q=first:"Sonya"'

但我希望这种方法尽可能通用。

所以问题是:是否可以使用 Java API 解析和翻译 1:1 HTTP 请求到 Elasticsearch? 也许给到 Elasticsearch 对象只是 JSON 字符串作为参数?

看看这个。也许这个 post 可以帮助你:

How to construct QueryBuilder from JSON DSL when using Java API in ElasticSearch?

基本上你需要做这样的事情:

String query = whatever_query...
SearchResponse response = esClient.prepareSearch(Configuration.PRIMARY_INDEX_NAME)
                    .setQuery(query)
                    .execute()
                    .actionGet();