1

我有一个 ElasticSearch 的有效查询,但我无法使用 ElasticSearch 的 Java API 执行相同的查询。

如何用 ElasticSearch 的 Java API 表达下面的查询?

---
size: 0

query:
  match_all: []

facets:
  age:
    statistical:
      field : timestamp 
4

2 回答 2

2

它应该是这样的:

client.prepareSearch("yourindex")
      .setTypes("yourtype")
      .setQuery(QueryBuilders.matchAllQuery())
      .addFacet(FacetBuilders.statisticalFacet("age").field("timestamp"))
      .setSize(0)
      .execute()
      .actionGet();
于 2013-11-08T08:10:54.523 回答
0

您可以将查询 DSL 转换为 JSON 字符串,然后用QueryBuilders.wrapperQuery()or包装它WrapperQueryBuilder(),最后像这样使用 Java API 进行查询。

SearchResponse response = client.prepareSearch("yourIndex")
                                .setTypes("yourType")
                                .setQuery(dslQB)
                                .setFrom(currentItem)
                                .setSize(pageSize)
                                .execute()
                                .actionGet();

`

于 2014-09-28T06:14:51.803 回答