[英]How to perform the following query with Elasticsearch Java API?
我正在使用spring數據elasticsearch,我希望能夠對類型為“ fruit”的索引“ fruits”執行以下搜索查詢:
{
'sort': {'fruitid': 'desc'},
'query': {
'query_string': {
'query': u'Banana AND (start:>=1492274000000) AND (end:<=1386842400000)'
}
},
'facets': {
'fruit_color': {
'terms': {'field': 'fruit_color', 'size': 5}
},
'fruit_weight': {
'terms': {'field': 'fruit_weight', 'size': 5}
}
}
我該如何使用Java API? 注意我不想使用任何模型類。
下面的Java代碼向您展示如何為水果的顏色和重量創建兩個TermFacetRequest
,以及如何通過調用withFacet()
將它們添加到查詢中。 這也說明了如何添加query_string
使用查詢QueryBuilders.queryStringQuery()
方法調用。
// create the fruit color facet
TermFacetRequest fruitColor = new TermFacetRequest("fruit_color");
fruitColor.setFields("fruit_color");
fruitColor.setSize(5);
// create the fruit weight facet
TermFacetRequest fruitWeight = new TermFacetRequest("fruit_weight");
fruitWeight.setFields("fruit_weight");
fruitWeight.setSize(5);
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withPageable(new PageRequest(0, 10))
.withQuery(QueryBuilders.queryStringQuery("Banana AND (start:>=1492274000000) AND (end:<=1386842400000)"))
.withSort(SortBuilders.fieldSort("fruitId").order(SortOrder.DESC))
.withIndices("fruit").withTypes("fruit")
.withFacet(fruitColor) <--- add the fruit color facet
.withFacet(fruitWeight); <--- add the fruit weight facet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.