我有一个 ElasticSearch 的有效查询,但我无法使用 ElasticSearch 的 Java API 执行相同的查询。
如何用 ElasticSearch 的 Java API 表达下面的查询?
---
size: 0
query:
match_all: []
facets:
age:
statistical:
field : timestamp
我有一个 ElasticSearch 的有效查询,但我无法使用 ElasticSearch 的 Java API 执行相同的查询。
如何用 ElasticSearch 的 Java API 表达下面的查询?
---
size: 0
query:
match_all: []
facets:
age:
statistical:
field : timestamp
它应该是这样的:
client.prepareSearch("yourindex")
.setTypes("yourtype")
.setQuery(QueryBuilders.matchAllQuery())
.addFacet(FacetBuilders.statisticalFacet("age").field("timestamp"))
.setSize(0)
.execute()
.actionGet();
您可以将查询 DSL 转换为 JSON 字符串,然后用QueryBuilders.wrapperQuery()
or包装它WrapperQueryBuilder()
,最后像这样使用 Java API 进行查询。
SearchResponse response = client.prepareSearch("yourIndex")
.setTypes("yourType")
.setQuery(dslQB)
.setFrom(currentItem)
.setSize(pageSize)
.execute()
.actionGet();
`