SpringBoot知识体系(四)springboot整合Elasticsearch(3)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_37338761/article/details/102502151

Search API

基本查询

SearchRequestBuilder requestBuilder = this.esClient.prepareSearch(INDEX_NAME)
				.setTypes(INDEX_TYPE)
                .setQuery(QueryBuilders.termQuery("query", "test"));    // Query		   

排序、多条件查询

BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
boolQuery.filter(QueryBuilders.termQuery("name","wqy"));  
boolQuery.filter(QueryBuilders.rangeQuery("area").lte(100).gte(20));  // Filter

boolQuery.should(
     QueryBuilders.matchQuery("title").boost(2.0f)
);
boolQuery.should(QueryBuilders.multiMatchQuery(rentSearch.getKeywords(),
     "age","high"
));

SearchRequestBuilder requestBuilder = this.esClient.prepareSearch(INDEX_NAME)
          .setTypes(INDEX_TYPE)
          .setQuery(boolQuery)
          .addSort(HouseSort.getSortKey("sequence1"),
                        SortOrder.valueOf("desc"))
          .setFrom("0")
          .setSize("10")
          .setFetchSource("id",null);

返回结果判断

SearchResponse response = requestBuilder.get();
if(response.status()!=RestStatus.OK){
    logger.warn("Search status is no ok for "+requestBuilder);
}

猜你喜欢

转载自blog.csdn.net/qq_37338761/article/details/102502151