Commit 98ef57e6 by shenjunjie

Merge branch 'feature' into 'dev'

原发追溯调整

See merge request !521
parents 90c9a6a5 e5ca37fe
...@@ -3510,11 +3510,9 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -3510,11 +3510,9 @@ public class MarkDataServiceImpl implements MarkDataService {
@Override @Override
public PageVO<JSONObject> getWholeSearchArticleList(MarkSearchDTO dto) { public PageVO<JSONObject> getWholeSearchArticleList(MarkSearchDTO dto) {
try { try {
defaultMarkSearch(dto); BoolQueryBuilder query = getAllIndexSearchOriginQuery(dto);
// keyword String[] indexes = esClientDao.getAllIndexes(dto.getStartTime(), dto.getEndTime());
BoolQueryBuilder keywordQuery = QueryBuilders.boolQuery(); Long total = esClientDao.count(indexes, query, null);
keywordQuery.must(EsQueryTools.assembleNormalKeywordQuery(dto.getKeyword(), new String[]{GenericAttribute.ES_IND_FULL_TEXT}));
BoolQueryBuilder query = QueryBuilders.boolQuery().must(keywordQuery);
// platform query // platform query
if (Objects.equals("其他", dto.getPlatforms().get(0))){ if (Objects.equals("其他", dto.getPlatforms().get(0))){
List<String> platforms = getWholeSearchPlatformPercentage(dto).stream().map(json -> json.getString("platform")).collect(Collectors.toList()); List<String> platforms = getWholeSearchPlatformPercentage(dto).stream().map(json -> json.getString("platform")).collect(Collectors.toList());
...@@ -3527,7 +3525,6 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -3527,7 +3525,6 @@ public class MarkDataServiceImpl implements MarkDataService {
} }
int page = dto.getPage(); int page = dto.getPage();
int pageSize = dto.getPageSize(); int pageSize = dto.getPageSize();
String[] indexes = esClientDao.getAllIndexes(dto.getStartTime(), dto.getEndTime());
FieldSortBuilder sort = new FieldSortBuilder("time").order(SortOrder.ASC); FieldSortBuilder sort = new FieldSortBuilder("time").order(SortOrder.ASC);
SearchHits hits = esClientDao.searchHits(indexes, query, null, null, sort, (page - 1) * pageSize, pageSize, null); SearchHits hits = esClientDao.searchHits(indexes, query, null, null, sort, (page - 1) * pageSize, pageSize, null);
List<JSONObject> list = new ArrayList<>(); List<JSONObject> list = new ArrayList<>();
...@@ -3543,9 +3540,10 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -3543,9 +3540,10 @@ public class MarkDataServiceImpl implements MarkDataService {
? Tools.getTitleWithContent(data.getString("title"), data.getString("content")) ? Tools.getTitleWithContent(data.getString("title"), data.getString("content"))
: Tools.getTitleWithContent(data.getString("questionTitle"), data.getString("questionContent")); : Tools.getTitleWithContent(data.getString("questionTitle"), data.getString("questionContent"));
jsonObject.put("title", title); jsonObject.put("title", title);
jsonObject.put("url", data.getString("url"));
list.add(jsonObject); list.add(jsonObject);
} }
return PageVO.createPageVo(hits.getHits().length, page, pageSize, list); return PageVO.createPageVo(total, page, pageSize, list);
}catch (Exception e){ }catch (Exception e){
ExceptionCast.cast(CommonCodeEnum.FAIL, "全网搜原发溯源文章列表getWholeSearchArticleList异常-", e); ExceptionCast.cast(CommonCodeEnum.FAIL, "全网搜原发溯源文章列表getWholeSearchArticleList异常-", e);
} }
...@@ -3556,7 +3554,8 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -3556,7 +3554,8 @@ public class MarkDataServiceImpl implements MarkDataService {
dto.setStartTime(dto.getEndTime() - Constant.ONE_MONTH); dto.setStartTime(dto.getEndTime() - Constant.ONE_MONTH);
// keyword // keyword
BoolQueryBuilder keywordQuery = QueryBuilders.boolQuery(); BoolQueryBuilder keywordQuery = QueryBuilders.boolQuery();
keywordQuery.must(QueryBuilders.matchPhraseQuery(GenericAttribute.ES_IND_FULL_TEXT, dto.getKeyword())); // 使用matchPhrasePrefixQuery,保证单词被截取后也能查询
keywordQuery.must(QueryBuilders.matchPhrasePrefixQuery(GenericAttribute.ES_IND_FULL_TEXT, dto.getKeyword()));
// platform // platform
BoolQueryBuilder platformQuery = EsQueryTools.assemblePlatformQuery(GlobalPojo.PLATFORMS); BoolQueryBuilder platformQuery = EsQueryTools.assemblePlatformQuery(GlobalPojo.PLATFORMS);
return QueryBuilders.boolQuery().must(keywordQuery).must(platformQuery) return QueryBuilders.boolQuery().must(keywordQuery).must(platformQuery)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment