簡體   English   中英

如何使用Elasticsearch Java API執行以下查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM