提交 c78bddff 作者: yanxin

已入库数据检索支持查询发布时间为空的数据

上级 4b08e8ba
...@@ -1976,6 +1976,12 @@ public class EsService { ...@@ -1976,6 +1976,12 @@ public class EsService {
* @date 2024/12/25 * @date 2024/12/25
*/ */
private BoolQueryBuilder buildQuery(InfoDataSearchCondition searchCondition, List<String> subjectIdList) { private BoolQueryBuilder buildQuery(InfoDataSearchCondition searchCondition, List<String> subjectIdList) {
//判断是否需要查询发布时间为空的数据
boolean timeFlag = false;
if(StringUtils.isEmpty(searchCondition.getStartTime()) && StringUtils.isEmpty(searchCondition.getEndTime())) {
//前端没有穿时间参数时,需要查询发布时间为空的数据
timeFlag = true;
}
//创建查询对象 //创建查询对象
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
if (CollectionUtils.isNotEmpty(subjectIdList)) { if (CollectionUtils.isNotEmpty(subjectIdList)) {
...@@ -2012,13 +2018,14 @@ public class EsService { ...@@ -2012,13 +2018,14 @@ public class EsService {
} }
} }
//时间过滤筛选-专题配置 //时间过滤筛选-专题配置
if (StringUtils.isNotBlank(configStartTime)) { if (StringUtils.isNotEmpty(configStartTime) && (StringUtils.isEmpty(searchCondition.getStartTime())||configStartTime.compareTo(searchCondition.getStartTime())>0)) {
boolQuery.filter(QueryBuilders.rangeQuery("publishDate").gte(EsDateUtil.esFieldDateFormat(configStartTime))); searchCondition.setStartTime(configStartTime);
} }
if (StringUtils.isNotBlank(configEndTime)) { if(StringUtils.isEmpty(configEndTime)){
boolQuery.filter(QueryBuilders.rangeQuery("publishDate").lte(EsDateUtil.esFieldDateFormat(configEndTime))); configEndTime = EsDateUtil.esFieldDateFormat(DateUtil.dateToString(new Date()));
} else { }
boolQuery.filter(QueryBuilders.rangeQuery("publishDate").lte(EsDateUtil.esFieldDateFormat(DateUtil.dateToString(new Date())))); if (StringUtils.isEmpty(searchCondition.getEndTime())||configEndTime.compareTo(searchCondition.getEndTime())<0) {
searchCondition.setEndTime(configEndTime);
} }
} }
} }
...@@ -2109,13 +2116,23 @@ public class EsService { ...@@ -2109,13 +2116,23 @@ public class EsService {
boolQuery.filter(QueryBuilders.rangeQuery("score").lte(maxScore)); boolQuery.filter(QueryBuilders.rangeQuery("score").lte(maxScore));
} }
//时间过滤筛选-前端传参 //时间过滤筛选-前端传参
if (StringUtils.isNotBlank(searchCondition.getStartTime())) { if(StringUtils.isEmpty(searchCondition.getStartTime()) && StringUtils.isEmpty(searchCondition.getEndTime())){
boolQuery.filter(QueryBuilders.rangeQuery("publishDate").gte(EsDateUtil.esFieldDateFormat(searchCondition.getStartTime()))); BoolQueryBuilder publishDateQueryBuilder = QueryBuilders.boolQuery();
} BoolQueryBuilder configDateQueryBuilder = QueryBuilders.boolQuery();
if (StringUtils.isNotBlank(searchCondition.getEndTime())) { //时间过滤筛选-专题配置
boolQuery.filter(QueryBuilders.rangeQuery("publishDate").lte(EsDateUtil.esFieldDateFormat(searchCondition.getEndTime()))); if (StringUtils.isNotBlank(searchCondition.getStartTime())) {
} else { configDateQueryBuilder.must(QueryBuilders.rangeQuery("publishDate").gte(EsDateUtil.esFieldDateFormat(searchCondition.getStartTime())));
boolQuery.filter(QueryBuilders.rangeQuery("publishDate").lte(EsDateUtil.esFieldDateFormat(DateUtil.dateToString(new Date())))); }
if (StringUtils.isNotBlank(searchCondition.getEndTime())) {
configDateQueryBuilder.must(QueryBuilders.rangeQuery("publishDate").lte(EsDateUtil.esFieldDateFormat(searchCondition.getEndTime())));
} else {
configDateQueryBuilder.must(QueryBuilders.rangeQuery("publishDate").lte(EsDateUtil.esFieldDateFormat(DateUtil.dateToString(new Date()))));
}
publishDateQueryBuilder.should(configDateQueryBuilder);
if(timeFlag){
publishDateQueryBuilder.should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("publishDate")));
}
boolQuery.must(publishDateQueryBuilder);
} }
String crawler = searchCondition.getCrawler(); String crawler = searchCondition.getCrawler();
if (StringUtils.isNotBlank(crawler)) { if (StringUtils.isNotBlank(crawler)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论