版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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);
}