1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

Replace missingQuery() with existsQuery()

This commit is contained in:
dengchao@xgtl 2020-04-17 13:50:46 +08:00
parent f707132743
commit 452a7726bc
3 changed files with 77 additions and 78 deletions

View File

@ -36,15 +36,16 @@ import java.util.List;
import static org.elasticsearch.index.query.QueryBuilders.termQuery; import static org.elasticsearch.index.query.QueryBuilders.termQuery;
@Component @Component
public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository{ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
private ElasticsearchTemplate elasticsearchTemplate; private ElasticsearchTemplate elasticsearchTemplate;
@Autowired @Autowired
public void setElasticsearchTemplate(ElasticsearchTemplate elasticsearchTemplate) { public void setElasticsearchTemplate(ElasticsearchTemplate elasticsearchTemplate) {
this.elasticsearchTemplate = elasticsearchTemplate; this.elasticsearchTemplate = elasticsearchTemplate;
} }
@Override
public Page<KbsTopic> getTopicByCate(String cate , String q, final int p , final int ps) { @Override
public Page<KbsTopic> getTopicByCate(String cate, String q, final int p, final int ps) {
Page<KbsTopic> pages = null; Page<KbsTopic> pages = null;
@ -63,17 +64,16 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository{
return pages; return pages;
} }
@SuppressWarnings("deprecation") @Override
@Override public Page<KbsTopic> getTopicByTop(boolean top, final int p, final int ps) {
public Page<KbsTopic> getTopicByTop(boolean top , final int p , final int ps) {
Page<KbsTopic> pages = null ; Page<KbsTopic> pages = null;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(termQuery("top", top)); boolQueryBuilder.must(termQuery("top", top));
QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime())); QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime()));
QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime())); QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime()));
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC)); NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
@ -85,8 +85,8 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository{
return pages; return pages;
} }
@Override @Override
public Page<KbsTopic> getTopicByCateAndUser(String cate , String q , String user ,final int p , final int ps) { public Page<KbsTopic> getTopicByCateAndUser(String cate, String q, String user, final int p, final int ps) {
Page<KbsTopic> pages = null; Page<KbsTopic> pages = null;
@ -105,14 +105,13 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository{
return pages; return pages;
} }
@SuppressWarnings("deprecation") @Override
@Override public Page<KbsTopic> getTopicByCon(BoolQueryBuilder boolQueryBuilder, final int p, final int ps) {
public Page<KbsTopic> getTopicByCon(BoolQueryBuilder boolQueryBuilder, final int p , final int ps) {
Page<KbsTopic> pages = null; Page<KbsTopic> pages = null;
QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime())); QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime()));
QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime())); QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime()));
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC)); NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
@ -122,27 +121,28 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository{
} }
return pages; return pages;
} }
@Override
public List<KbsTopic> getTopicByOrgi(String orgi , String type, String q) {
List<KbsTopic> list = null ; @Override
public List<KbsTopic> getTopicByOrgi(String orgi, String type, String q) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); List<KbsTopic> list = null;
boolQueryBuilder.must(termQuery("orgi" , orgi)) ;
if(!StringUtils.isBlank(type)){ BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(termQuery("cate" , type)) ; boolQueryBuilder.must(termQuery("orgi", orgi));
}
if (!StringUtils.isBlank(q)) { if (!StringUtils.isBlank(type)) {
boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND)); boolQueryBuilder.must(termQuery("cate", type));
} }
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC)); if (!StringUtils.isBlank(q)) {
SearchQuery searchQuery = searchQueryBuilder.build(); boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));
if (elasticsearchTemplate.indexExists(KbsTopic.class)) { }
list = elasticsearchTemplate.queryForList(searchQuery, KbsTopic.class);
} NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
return list; SearchQuery searchQuery = searchQueryBuilder.build();
} if (elasticsearchTemplate.indexExists(KbsTopic.class)) {
list = elasticsearchTemplate.queryForList(searchQuery, KbsTopic.class);
}
return list;
}
} }

View File

@ -138,14 +138,13 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository{
return pages; return pages;
} }
@SuppressWarnings("deprecation")
@Override @Override
public Page<QuickReply> getByCon(BoolQueryBuilder boolQueryBuilder, final int p , final int ps) { public Page<QuickReply> getByCon(BoolQueryBuilder boolQueryBuilder, final int p , final int ps) {
Page<QuickReply> pages = null; Page<QuickReply> pages = null;
QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime())); QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime()));
QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime())); QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime()));
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC)); NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));

View File

@ -37,22 +37,23 @@ import java.util.List;
import static org.elasticsearch.index.query.QueryBuilders.termQuery; import static org.elasticsearch.index.query.QueryBuilders.termQuery;
@Component @Component
public class TopicRepositoryImpl implements TopicEsCommonRepository{ public class TopicRepositoryImpl implements TopicEsCommonRepository {
private ElasticsearchTemplate elasticsearchTemplate; private ElasticsearchTemplate elasticsearchTemplate;
@Autowired @Autowired
public void setElasticsearchTemplate(ElasticsearchTemplate elasticsearchTemplate) { public void setElasticsearchTemplate(ElasticsearchTemplate elasticsearchTemplate) {
this.elasticsearchTemplate = elasticsearchTemplate; this.elasticsearchTemplate = elasticsearchTemplate;
} }
@Override
public Page<Topic> getTopicByCateAndOrgi(String cate ,String orgi, String q, final int p , final int ps) {
Page<Topic> pages = null ; @Override
public Page<Topic> getTopicByCateAndOrgi(String cate, String orgi, String q, final int p, final int ps) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); Page<Topic> pages = null;
if(!StringUtils.isBlank(cate)) {
boolQueryBuilder.must(termQuery("cate" , cate)) ; BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
} if (!StringUtils.isBlank(cate)) {
boolQueryBuilder.must(termQuery("cate", cate));
}
boolQueryBuilder.must(termQuery("orgi", orgi)); boolQueryBuilder.must(termQuery("orgi", orgi));
if (!StringUtils.isBlank(q)) { if (!StringUtils.isBlank(q)) {
boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND)); boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));
@ -66,21 +67,20 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository{
return pages; return pages;
} }
@SuppressWarnings("deprecation") @Override
@Override public Page<Topic> getTopicByTopAndOrgi(boolean top, String orgi, String aiid, final int p, final int ps) {
public Page<Topic> getTopicByTopAndOrgi(boolean top ,String orgi, String aiid ,final int p , final int ps) {
Page<Topic> pages = null ; Page<Topic> pages = null;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(termQuery("top" , top)) ; boolQueryBuilder.must(termQuery("top", top));
boolQueryBuilder.must(termQuery("orgi" , orgi)) ; boolQueryBuilder.must(termQuery("orgi", orgi));
if(!StringUtils.isBlank(aiid)) { if (!StringUtils.isBlank(aiid)) {
boolQueryBuilder.must(termQuery("aiid" , aiid)) ; boolQueryBuilder.must(termQuery("aiid", aiid));
} }
QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").to(new Date().getTime())) ; QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").to(new Date().getTime()));
QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").from(new Date().getTime())); QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").from(new Date().getTime()));
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC)); NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
@ -94,12 +94,12 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository{
} }
@Override @Override
public Page<Topic> getTopicByCateAndUser(String cate , String q , String user ,final int p , final int ps) { public Page<Topic> getTopicByCateAndUser(String cate, String q, String user, final int p, final int ps) {
Page<Topic> pages = null ; Page<Topic> pages = null;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(termQuery("cate" , cate)) ; boolQueryBuilder.must(termQuery("cate", cate));
if (!StringUtils.isBlank(q)) { if (!StringUtils.isBlank(q)) {
boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND)); boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));
@ -113,14 +113,13 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository{
return pages; return pages;
} }
@SuppressWarnings("deprecation") @Override
@Override public Page<Topic> getTopicByCon(BoolQueryBuilder boolQueryBuilder, final int p, final int ps) {
public Page<Topic> getTopicByCon(BoolQueryBuilder boolQueryBuilder, final int p , final int ps) {
Page<Topic> pages = null; Page<Topic> pages = null;
QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").to(new Date().getTime())); QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").to(new Date().getTime()));
QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").from(new Date().getTime())); QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.existsQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").from(new Date().getTime()));
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC)); NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps)); SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
@ -129,17 +128,18 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository{
} }
return pages; return pages;
} }
@Override
public List<Topic> getTopicByOrgi(String orgi , String type, String q) {
List<Topic> list = null ; @Override
public List<Topic> getTopicByOrgi(String orgi, String type, String q) {
List<Topic> list = null;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(termQuery("orgi" , orgi)) ; boolQueryBuilder.must(termQuery("orgi", orgi));
if(!StringUtils.isBlank(type)){ if (!StringUtils.isBlank(type)) {
boolQueryBuilder.must(termQuery("cate" , type)) ; boolQueryBuilder.must(termQuery("cate", type));
} }
if (!StringUtils.isBlank(q)) { if (!StringUtils.isBlank(q)) {
boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND)); boolQueryBuilder.must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));