TransportClient client = ElasticService.getTransportClient();
BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
// title,content为要匹配的字段
boolBuilder = boolBuilder.should(
QueryBuilders.matchQuery("title", keyWord)).should(
QueryBuilders.matchQuery("content", keyWord));
List<String> mediaList = getChildMediaCode(sourceCode);
boolBuilder = boolBuilder.must(QueryBuilders.termsQuery("sourceCode",
mediaList));
if (!StringUtils.isEmpty(infoType)) {
boolBuilder = boolBuilder.must(QueryBuilders.matchQuery("infoType",
infoType));
}
Date startTime = null;
Date endTime = null;
//es时间格式为UTC格式(转成相应的时间格式)
if (!StringUtils.isEmpty(start)) {
startTime = DateUtil.strToDate(start);
}
if (!StringUtils.isEmpty(end)) {
endTime = DateUtil.strToDate(end);
}
BoolFilterBuilder filterBuilder = FilterBuilders.boolFilter().must(
FilterBuilders.rangeFilter("createTime").from(startTime)
.to(endTime));
QueryBuilder query = QueryBuilders.filteredQuery(boolBuilder,
filterBuilder);
SearchResponse response = client.prepareSearch()
.setIndices(“index”)
.setTypes("type")
.setQuery(query).setFrom(开始条数).setSize(结束条数)
.addSort("createTime", SortOrder.DESC).execute().actionGet();
//关闭client连接
client.close();
SearchHits result = response.getHits();
//查询结果处理
转载于:https://my.oschina.net/keke412/blog/906711