feat: There is no way the, 新需求 调整ES 检索规则 更新 es 操作文档

This commit is contained in:
super_liu
2022-06-17 15:21:38 +08:00
parent 71ac54b05e
commit dc902ab411
10 changed files with 165 additions and 27 deletions
@@ -220,27 +220,26 @@ public class SearchCenterServiceImpl implements SearchCenterService {
String sortField2 = "";
String sortField3 = "";
if("laws".equals(searchInfoEO.getSelectIndex())){
sortField = "lawsYear";
sortField1 = "lawsType";
sortField2 = "lawsNumber";
sortField1 = "lawsNumber";
sortField2 = "lawsYear";
sortField3 = "lawsType.keyword";
}else {
sortField = "standYear";
sortField1 = "standSort";
sortField2 = "standNumber";
sortField1 = "standNumber";
sortField2 = "standYear";
sortField3 = "standSort.keyword";
}
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
.addSort(new ScoreSortBuilder().order(SortOrder.DESC))
.addSort("standSortOrder", SortOrder.ASC)
.addSort(sortField1, SortOrder.ASC)
.addSort(sortField2, SortOrder.ASC)
.addSort(sortField, SortOrder.DESC)
.addSort(sortField2, SortOrder.DESC)
.addSort(sortField3, SortOrder.ASC)
.addSort("issue_time_data", SortOrder.DESC)
.setSize(searchInfoEO.getPageSize());
if(StringUtils.isNotBlank(searchInfoEO.getSelectType()) && !"titleSearch".equals(searchInfoEO.getSelectType())) {
if(StringUtils.isNotBlank(searchInfoEO.getSelectIndex())) {
if(searchInfoEO.getSelectIndex().equals("stand")) {
boolQueryShould = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
} else if(searchInfoEO.getSelectIndex().equals("laws")){
@@ -1472,10 +1471,10 @@ public class SearchCenterServiceImpl implements SearchCenterService {
// }
// }
boolQueryShould
.should(QueryBuilders.wildcardQuery("sortTitle.keyword", searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f))
.should(QueryBuilders.wildcardQuery("numberTitle.keyword", searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1004f))
.should(QueryBuilders.wildcardQuery("yearOrder.keyword", searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f))
.should(QueryBuilders.wildcardQuery("nameTitle.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f))
.should(QueryBuilders.wildcardQuery("sortTitle.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1005f))
.should(QueryBuilders.termQuery("numberTitle", searchInfoEO.getSelectValue().toUpperCase()).boost(1004f))
.should(QueryBuilders.wildcardQuery("yearOrder.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1003f))
.should(QueryBuilders.wildcardQuery("nameTitle.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1002f))
.should(QueryBuilders.wildcardQuery("title.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f));
// queryBuilder1 = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
// "sortTitle","numberTitle","yearOrder","nameTitle","title"
@@ -1523,7 +1522,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
.addSort(new ScoreSortBuilder().order(SortOrder.DESC))
.addSort("standTypeOrder",SortOrder.ASC)
.addSort("standSortOrder",SortOrder.ASC)
.addSort("numberTitle.keyword",SortOrder.ASC)
.addSort("numberTitle",SortOrder.ASC)
.addSort("yearOrder.keyword",SortOrder.DESC)
.addSort("sortTitle.keyword",SortOrder.ASC)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
@@ -151,6 +151,13 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
//查询字典表,形成Hash映射提升速度
List<DicTypeEO> dicInfo = dicTypeEODao.getDicInfo("dic_id","dic_type_code", "dic_type_name","show_index");
dicInfo = dicInfo.stream().filter(dicTypeEO -> {
if(StringUtils.isNotBlank(dicTypeEO.getDicTypeCode())){
dicTypeEO.setDicTypeCode(dicTypeEO.getDicTypeCode().replace(" ",""));
return true;
}
return false;
}).collect(Collectors.toList());
Map<String, Integer> dicMap = dicInfo.stream()
.filter(item-> ("2klxdk7fo3tvpvin70dk".equals(item.getDicId()) || "18mg1g4x0rwubcto7fdd".equals(item.getDicId()) || "08rerbsn8ucjfk13z2ci".equals(item.getDicId()) || "pnv0ik979yqogocqujwo".equals(item.getDicId())) && !item.getDicTypeCode().isEmpty())
.collect(Collectors.toMap(DicTypeEO::getDicTypeCode,DicTypeEO::getShowIndex,(value1, value2 )->value2));
@@ -426,9 +433,14 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
return fullTextSearchEO;
}
private String esStateOrder(String data, Map<String,Integer> dicMap){
if(StringUtils.isNotBlank(data) && dicMap.get(data.toUpperCase()) != null){
return String.valueOf(dicMap.get(data.toUpperCase()));
private String esStateOrder(String data, Map<String, Integer> dicMap){
if(StringUtils.isNotBlank(data)){
data = data.replace(" ","");
if(dicMap.get(data.trim().toUpperCase()) != null){
return String.valueOf(dicMap.get(data.trim().toUpperCase()));
}else {
return "99999";
}
}else {
return "99999";
}