feat: There is no way the, es 标准资源查询 添加 检索方式
This commit is contained in:
+45
-45
@@ -209,26 +209,41 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
|
||||
updateIndex(searchInfoEO.getSelectIndex());
|
||||
String sortField = "";
|
||||
String sortField1 = "";
|
||||
String sortField2 = "";
|
||||
String sortField3 = "";
|
||||
if("laws".equals(searchInfoEO.getSelectIndex())){
|
||||
sortField = "lawsYear";
|
||||
sortField1 = "lawsType";
|
||||
sortField2 = "lawsNumber";
|
||||
sortField3 = "lawsType.keyword";
|
||||
}else {
|
||||
sortField = "standYear";
|
||||
sortField1 = "standSort";
|
||||
sortField2 = "standNumber";
|
||||
sortField3 = "standSort.keyword";
|
||||
}
|
||||
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
|
||||
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
|
||||
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
|
||||
.addSort(sortField1, SortOrder.ASC)
|
||||
.addSort(sortField2, SortOrder.ASC)
|
||||
.addSort(sortField, SortOrder.DESC)
|
||||
.addSort(sortField3, SortOrder.ASC)
|
||||
.addSort("issue_time_data", SortOrder.DESC)
|
||||
.setSize(searchInfoEO.getPageSize());
|
||||
|
||||
if(searchInfoEO.getSelectIndex().equals("stand")) {
|
||||
boolQueryShould = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
|
||||
} else if(searchInfoEO.getSelectIndex().equals("laws")){
|
||||
boolQueryShould = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
|
||||
} else if(searchInfoEO.getSelectIndex().equals("bussstand")){
|
||||
boolQueryShould = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
|
||||
if(StringUtils.isNotBlank(searchInfoEO.getSelectType()) && !"titleSearch".equals(searchInfoEO.getSelectType())) {
|
||||
if(searchInfoEO.getSelectIndex().equals("stand")) {
|
||||
boolQueryShould = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
|
||||
} else if(searchInfoEO.getSelectIndex().equals("laws")){
|
||||
boolQueryShould = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
|
||||
} else if(searchInfoEO.getSelectIndex().equals("bussstand")){
|
||||
boolQueryShould = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){
|
||||
QueryBuilder multiQueryBuilder;
|
||||
switch (searchInfoEO.getSelectIndex()){
|
||||
@@ -323,40 +338,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
}
|
||||
boolQueryBuilder.must(boolQueryShould);
|
||||
}else {
|
||||
if ("stand".equals(searchInfoEO.getSelectIndex()) && StringUtils.isNotBlank(searchInfoEO.getStandType())) {
|
||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
|
||||
}
|
||||
boolQueryBuilder.must(boolQueryShould);
|
||||
}
|
||||
|
||||
//在结果中检索
|
||||
if (StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && !isRqFormat(searchInfoEO.getSelectValue())) {
|
||||
QueryBuilder multiQuery = queryInResult(searchInfoEO);
|
||||
BoolQueryBuilder boolSelectValue = new BoolQueryBuilder();
|
||||
boolSelectValue.should(multiQuery);
|
||||
switch (searchInfoEO.getSelectIndex()){
|
||||
case "stand":
|
||||
boolSelectValue
|
||||
.should(QueryBuilders.wildcardQuery("standSort.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f))
|
||||
.should(QueryBuilders.wildcardQuery("standNumber.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f));
|
||||
break;
|
||||
case "laws":
|
||||
boolSelectValue
|
||||
.should(QueryBuilders.wildcardQuery("lawsType.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f))
|
||||
.should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("lawsYear.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("lawsName.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1001f));
|
||||
|
||||
break;
|
||||
case "bussstand":
|
||||
boolSelectValue
|
||||
.should(QueryBuilders.wildcardQuery("standSort.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f))
|
||||
.should(QueryBuilders.wildcardQuery("standNumber.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f));
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
boolQueryBuilder.must(boolSelectValue);
|
||||
boolQueryBuilder.must(multiQuery);
|
||||
}
|
||||
|
||||
searchRequestBuilder.setQuery(boolQueryBuilder).setTrackTotalHits(true);
|
||||
@@ -798,14 +789,23 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
|
||||
List<String> fieldList = getStringField(searchInfoEO);
|
||||
List<String> fieldNameList = new ArrayList<>();
|
||||
String[] standStr = {"content","standEnName","standNatureName",
|
||||
"textStatusName","isRelateAccessName","numbershow","standSystem","NYLXCLASS","CLLX"};
|
||||
String[] lawsStr = {"content","lawsEnName","lawsNo","issueCompany","lawsTextState","lawsSyqy","lawsSycx","isRelateAccess","lawsNotisyncNum","lawsBulletin","lawsLabel","lawsRemark"};
|
||||
String[] bussstandStr = {"content","stand_code","standEnName","nameshow","standstateshow","numbershow","textStatusBuss","textStatusBussName","NYLXCLASS","CLLX"};
|
||||
for (String field : fieldList) {
|
||||
// 关键字查询属性字段
|
||||
String keyWordField2 = field + "Name";
|
||||
fieldNameList.add(keyWordField2);
|
||||
String[] standStr = null;
|
||||
String[] lawsStr = null;
|
||||
String[] bussstandStr = null;
|
||||
if (StringUtils.isNotBlank(searchInfoEO.getSelectType()) && "titleSearch".equals(searchInfoEO.getSelectType())){
|
||||
standStr = new String[]{"numbershow","nameshow"};
|
||||
lawsStr = new String[]{"lawsNo","lawsName"};
|
||||
bussstandStr = new String[]{"numbershow","nameshow"};
|
||||
}else {
|
||||
standStr = new String[]{"content", "standEnName", "standNatureName",
|
||||
"textStatusName", "isRelateAccessName", "numbershow","nameshow", "standSystem", "NYLXCLASS", "CLLX"};
|
||||
lawsStr = new String[]{"content", "lawsEnName","lawsName", "lawsNo", "issueCompany", "lawsTextState", "lawsSyqy", "lawsSycx", "isRelateAccess", "lawsNotisyncNum", "lawsBulletin", "lawsLabel", "lawsRemark"};
|
||||
bussstandStr = new String[]{"content", "stand_code", "standEnName", "nameshow", "standstateshow", "numbershow", "textStatusBuss", "textStatusBussName", "NYLXCLASS", "CLLX"};
|
||||
for (String field : fieldList) {
|
||||
// 关键字查询属性字段
|
||||
String keyWordField2 = field + "Name";
|
||||
fieldNameList.add(keyWordField2);
|
||||
}
|
||||
}
|
||||
switch (searchInfoEO.getSelectIndex()){
|
||||
case "stand":
|
||||
@@ -813,7 +813,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
listStrings.addAll(fieldNameList);
|
||||
String[] fieldArr = listStrings.stream().toArray(String[]::new);
|
||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldArr
|
||||
).minimumShouldMatch("100%").boost(1L);
|
||||
).minimumShouldMatch("100%").field("numbershow",1001f).field("nameshow",1000f);
|
||||
// boolQueryBuilder.should();
|
||||
// for (String field : fieldList) {
|
||||
// // 关键字查询属性字段
|
||||
@@ -826,14 +826,14 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
listStringLaws.addAll(fieldNameList);
|
||||
String[] fieldLawsArr = listStringLaws.stream().toArray(String[]::new);
|
||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldLawsArr
|
||||
).minimumShouldMatch("100%").boost(1L);
|
||||
).minimumShouldMatch("100%").field("lawsNo",1001f).field("lawsName",1000f);
|
||||
break;
|
||||
case "bussstand":
|
||||
List<String> listStringBussstand = Stream.of(bussstandStr).collect(Collectors.toList());
|
||||
listStringBussstand.addAll(fieldNameList);
|
||||
String[] fieldBussstandArr = listStringBussstand.stream().toArray(String[]::new);
|
||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldBussstandArr
|
||||
).minimumShouldMatch("100%").boost(1L);
|
||||
).minimumShouldMatch("100%").field("numbershow",1001f).field("nameshow",1000f);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
+942
-1126
File diff suppressed because it is too large
Load Diff
+735
-871
File diff suppressed because it is too large
Load Diff
+1293
-1562
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user