|
|
@ -41,9 +41,22 @@ public class TopicQueryService { |
|
|
|
boolQuery.must(valueLableQuery); |
|
|
|
} |
|
|
|
// 分类标签 |
|
|
|
// 因为是多选,因此需要判断,如果是多个的话,需要先用, 分隔,然后再用模糊匹配进行查询 |
|
|
|
if(!("").equals(queryRequest.getCategoryLabel()) && null != queryRequest.getCategoryLabel()){ |
|
|
|
QueryBuilder categoryLableQuery = QueryBuilders.termQuery(ESConstant.CATEGORYLABEL+".keyword",queryRequest.getCategoryLabel()); |
|
|
|
boolQuery.must(categoryLableQuery); |
|
|
|
// QueryBuilder categoryLableQuery = QueryBuilders.queryStringQuery(queryRequest.getCategoryLabel()).defaultField(ESConstant.CATEGORYLABEL); //+".keyword" |
|
|
|
if(queryRequest.getCategoryLabel().contains(",")){ // 有多个标签查询,用should |
|
|
|
String labels []= queryRequest.getCategoryLabel().split(","); |
|
|
|
BoolQueryBuilder shouleLaelQuery = QueryBuilders.boolQuery(); |
|
|
|
for (String label:labels) { |
|
|
|
QueryBuilder categoryLableQuery = QueryBuilders.matchPhraseQuery(ESConstant.CATEGORYLABEL,label); |
|
|
|
shouleLaelQuery.should(categoryLableQuery); |
|
|
|
boolQuery.must(shouleLaelQuery); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
QueryBuilder categoryLableQuery = QueryBuilders.matchPhraseQuery(ESConstant.CATEGORYLABEL,queryRequest.getCategoryLabel()); |
|
|
|
boolQuery.must(categoryLableQuery); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
// searchArea 地点 |
|
|
|
if (("").equals(queryRequest.getSearchArea())) { |
|
|
|