Merge branch 'develop_migration' into 'develop_master'
Develop migration See merge request LiuChao/foton-slrs-system-rest!210
This commit is contained in:
+5
-1
@@ -96,7 +96,11 @@ public class SearchCenterController extends BaseController<Map<String, Object>>
|
|||||||
}
|
}
|
||||||
return Result.success(getPageInfo(searchInfoEO.getPager(), result));
|
return Result.success(getPageInfo(searchInfoEO.getPager(), result));
|
||||||
} else {
|
} else {
|
||||||
result = searchCenterService.searchSarBykey(searchInfoEO);
|
if (searchInfoEO.getQueryStatus() != null && StringUtils.isNotBlank(searchInfoEO.getQueryStatus()) && searchInfoEO.getQueryStatus().equals("advancedSearch") && null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) {
|
||||||
|
result = searchCenterService.searchSarBykey(searchInfoEO);
|
||||||
|
}else {
|
||||||
|
result = searchCenterService.searchSarConditionBykey(searchInfoEO);
|
||||||
|
}
|
||||||
// 非动态消息的需要查询为我推荐
|
// 非动态消息的需要查询为我推荐
|
||||||
for (int i = 0; i < result.size(); i++) {
|
for (int i = 0; i < result.size(); i++) {
|
||||||
String collectId = personCollectEOService.queryCollectByUserAndId(result.get(i).get("id").toString());
|
String collectId = personCollectEOService.queryCollectByUserAndId(result.get(i).get("id").toString());
|
||||||
|
|||||||
@@ -239,6 +239,8 @@ public class SeniorSearchInfoEO extends BasePage {
|
|||||||
private String stand_status;
|
private String stand_status;
|
||||||
private String isHigh;
|
private String isHigh;
|
||||||
|
|
||||||
|
private String queryStatus;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ public interface SearchCenterService {
|
|||||||
|
|
||||||
List<Map<String, Object>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception;
|
List<Map<String, Object>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception;
|
||||||
|
|
||||||
|
List<Map<String, Object>> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询结果集searchResponse装换成List形式
|
* 查询结果集searchResponse装换成List形式
|
||||||
* @param searchResponse 需要转换的数据
|
* @param searchResponse 需要转换的数据
|
||||||
|
|||||||
+294
-153
@@ -37,6 +37,7 @@ import java.util.*;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -57,19 +58,11 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
private static final String ISSUE_TIME = "issue_time_data";
|
private static final String ISSUE_TIME = "issue_time_data";
|
||||||
private static final String PUT_TIME = "put_time";
|
private static final String PUT_TIME = "put_time";
|
||||||
private static final String EPOCH_MILLIS = "epoch_millis";
|
private static final String EPOCH_MILLIS = "epoch_millis";
|
||||||
String numbershowStr = "numbershow";
|
|
||||||
String nameshowStr = "nameshow";
|
|
||||||
String nameshowSplit = "nameshowSplit";
|
|
||||||
String numbershowSplit = "numbershowSplit";
|
|
||||||
String replacedStandNumStr = "replaced_stand_num";
|
|
||||||
String replaceStandNumStr = "replace_stand_num";
|
|
||||||
String content = "content";
|
|
||||||
|
|
||||||
//关键字检索
|
//关键字检索
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception {
|
public List<Map<String, Object>> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception {
|
||||||
//判断是否高级查询 isHight = true(searchInfoEO.getIsHigh()为空)时,证明不是高级查询
|
//判断是否高级查询 isHight = true(searchInfoEO.getIsHigh()为空)时,证明不是高级查询
|
||||||
boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh());
|
|
||||||
List<Map<String, Object>> result = new ArrayList<>();
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
SearchRequestBuilder searchRequestBuilder;
|
SearchRequestBuilder searchRequestBuilder;
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
@@ -78,7 +71,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
|
|
||||||
|
|
||||||
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
|
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
|
||||||
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
|
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
|
||||||
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
|
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
|
||||||
.addSort("issueTime", SortOrder.DESC)
|
.addSort("issueTime", SortOrder.DESC)
|
||||||
.setSize(searchInfoEO.getPageSize());
|
.setSize(searchInfoEO.getPageSize());
|
||||||
@@ -114,16 +107,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
.should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
.should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||||
break;
|
break;
|
||||||
case "laws":
|
case "laws":
|
||||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
boolQueryShould.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num",
|
|
||||||
"synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJG","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC","accessCountry").minimumShouldMatch("100%");
|
|
||||||
boolQueryMust.must(multiQueryBuilder);
|
|
||||||
boolQueryShould.should(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getSelectValue()+"*"))
|
|
||||||
.should(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getSelectValue()+"*"))
|
|
||||||
.should(QueryBuilders.wildcardQuery(numbershowSplit, "*"+searchInfoEO.getSelectValue()+"*"))
|
|
||||||
.should(QueryBuilders.wildcardQuery(nameshowSplit, "*"+searchInfoEO.getSelectValue()+"*"))
|
|
||||||
.should(QueryBuilders.wildcardQuery(content, "*"+searchInfoEO.getSelectValue()+"*"))
|
|
||||||
.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
|
||||||
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
.should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*"))
|
.should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
.should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*"))
|
.should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
@@ -201,6 +185,136 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 条件
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception {
|
||||||
|
//判断是否高级查询 isHight = true(searchInfoEO.getIsHigh()为空)时,证明不是高级查询
|
||||||
|
boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh());
|
||||||
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
SearchRequestBuilder searchRequestBuilder;
|
||||||
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
|
BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery();
|
||||||
|
BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery();
|
||||||
|
|
||||||
|
|
||||||
|
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
|
||||||
|
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
|
||||||
|
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
|
||||||
|
.addSort("issueTime", 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.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){
|
||||||
|
QueryBuilder multiQueryBuilder;
|
||||||
|
switch (searchInfoEO.getSelectIndex()){
|
||||||
|
case "stand":
|
||||||
|
if (isRqFormat(searchInfoEO.getSelectValue())) {
|
||||||
|
Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||||
|
Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||||
|
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
||||||
|
boolQueryShould.should(rangeQueryBuilder);
|
||||||
|
}
|
||||||
|
boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standNatureName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("textStatusName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.matchPhraseQuery("content", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||||
|
break;
|
||||||
|
case "laws":
|
||||||
|
boolQueryShould.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("ZRLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("isRelateAccess", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("YQLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("GXHBQShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("XCXSSRQ", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("ZCCSSRQ", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("EOPSSRQ", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("ZCGCSShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("FBJG", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("SVPPSName", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("XGBMShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
// .should(QueryBuilders.wildcardQuery("ZRBMName", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("ZRBMShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("FOShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("GKGLBMShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("content", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("WSSFCYShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("replaceLawsNum", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("replacedLawsNum", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("XMPGJSShow", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("XGLC", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("stand_number", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||||
|
break;
|
||||||
|
case "bussstand":
|
||||||
|
boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
|
.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||||
|
if (isRqFormat(searchInfoEO.getSelectValue())) {
|
||||||
|
Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||||
|
Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||||
|
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
||||||
|
boolQueryShould.should(rangeQueryBuilder);
|
||||||
|
RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
||||||
|
boolQueryShould.should(rangeQueryBuilder2);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(boolQueryShould!=null){
|
||||||
|
boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0));
|
||||||
|
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandType())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*"));
|
||||||
|
}
|
||||||
|
boolQueryBuilder.must(boolQueryShould);
|
||||||
|
}else {
|
||||||
|
boolQueryBuilder.must(boolQueryShould);
|
||||||
|
}
|
||||||
|
|
||||||
|
//在结果中检索
|
||||||
|
if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isNotBlank(searchInfoEO.getIsHigh())) {
|
||||||
|
QueryBuilder multiQuery = queryInResult(searchInfoEO);
|
||||||
|
boolQueryBuilder.must(multiQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
searchRequestBuilder.setQuery(boolQueryBuilder);
|
||||||
|
|
||||||
|
// 获取查询到的结果
|
||||||
|
result = countStandSearchResult(searchRequestBuilder,searchInfoEO);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private Date dateFormatToStr(String dateStr){
|
private Date dateFormatToStr(String dateStr){
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
try {
|
try {
|
||||||
@@ -264,48 +378,40 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String fieldInfo = InitStandAttrSearchUtil.queryField;
|
List<String> fieldList = getStringField();
|
||||||
String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws;
|
|
||||||
String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss;
|
|
||||||
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
|
||||||
List<String> fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
|
||||||
List<String> fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
|
||||||
List<String> fieldList = new ArrayList<>();
|
|
||||||
fieldList.addAll(fieldInfoList);
|
|
||||||
fieldList.addAll(fieldLawsInfoList);
|
|
||||||
fieldList.addAll(fieldBussInfoList);
|
|
||||||
// 自动匹配动态属性字段 es 查询
|
// 自动匹配动态属性字段 es 查询
|
||||||
for (String field : fieldList) {
|
for (String field : fieldList) {
|
||||||
// 关键字查询属性字段
|
// 关键字查询属性字段
|
||||||
String keyWordField = field + ".keyword";
|
String keyWordField = field + ".keyword";
|
||||||
String keyWordField2 = field + "Name.keyword";
|
String keyWordField2 = field + "Name.keyword";
|
||||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
if(collectAttrMap.containsKey(field)){
|
||||||
boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*"));
|
List<String> fields = new ArrayList<>();
|
||||||
}else {
|
Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue();
|
||||||
if(collectAttrMap.containsKey(field)){
|
if(json instanceof org.json.JSONArray){
|
||||||
List<String> fields = new ArrayList<>();
|
fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class);
|
||||||
Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue();
|
}else {
|
||||||
if(json instanceof org.json.JSONArray){
|
if(!json.equals("null")){
|
||||||
fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class);
|
fields.add(collectAttrMap.get(field).toString());
|
||||||
}else {
|
|
||||||
if(!json.equals("null")){
|
|
||||||
fields.add(collectAttrMap.get(field).toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!fields.isEmpty()){
|
|
||||||
if(fields.size() > 1){
|
|
||||||
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
|
|
||||||
fields.forEach(s -> {
|
|
||||||
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery(keyWordField, "*"+s+"*"));
|
|
||||||
});
|
|
||||||
boolQueryBuilder.must(boolQueryBuilderShould);
|
|
||||||
}else {
|
|
||||||
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+fields.get(0)+"*"));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!fields.isEmpty()){
|
||||||
|
if(fields.size() > 1){
|
||||||
|
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
|
||||||
|
fields.forEach(s -> {
|
||||||
|
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery(keyWordField, "*"+s+"*"));
|
||||||
|
});
|
||||||
|
boolQueryBuilder.must(boolQueryBuilderShould);
|
||||||
|
}else {
|
||||||
|
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+fields.get(0)+"*"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
||||||
|
//// boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*"));
|
||||||
|
// }else {
|
||||||
|
//
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())) {
|
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())) {
|
||||||
boolQueryBuilder.should(boolQueryBuilderMust);
|
boolQueryBuilder.should(boolQueryBuilderMust);
|
||||||
@@ -353,62 +459,75 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
return boolQueryBuilder;
|
return boolQueryBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getStringField() {
|
||||||
|
String fieldInfo = InitStandAttrSearchUtil.queryField;
|
||||||
|
String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws;
|
||||||
|
String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss;
|
||||||
|
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
||||||
|
List<String> fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
||||||
|
List<String> fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
||||||
|
List<String> fieldList = new ArrayList<>();
|
||||||
|
fieldList.addAll(fieldInfoList);
|
||||||
|
fieldList.addAll(fieldLawsInfoList);
|
||||||
|
fieldList.addAll(fieldBussInfoList);
|
||||||
|
return fieldList;
|
||||||
|
}
|
||||||
|
|
||||||
//检索国内外标准数据
|
//检索国内外标准数据
|
||||||
public BoolQueryBuilder queryStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{
|
public BoolQueryBuilder queryStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{
|
||||||
String nameshowStr = "nameshow";
|
String nameshowStr = "nameshow";
|
||||||
// 高级搜索项,只针对标准
|
// 高级搜索项,只针对标准
|
||||||
if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){
|
|
||||||
// 高级搜索项,只针对标准
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandType())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
|
|
||||||
List<String> list = Arrays.asList(searchInfoEO.getStandSort().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
|
||||||
if(list.size() > 1){
|
|
||||||
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
|
|
||||||
list.forEach(s -> {
|
|
||||||
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+s+" "+"*"));
|
|
||||||
});
|
|
||||||
boolQueryBuilder.must(boolQueryBuilderShould);
|
|
||||||
}else {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getStandName()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) {
|
// 高级搜索项,只针对标准
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*"));
|
if (StringUtils.isNotBlank(searchInfoEO.getStandType())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
|
||||||
|
List<String> list = Arrays.asList(searchInfoEO.getStandSort().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
||||||
|
if(list.size() > 1){
|
||||||
|
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
|
||||||
|
list.forEach(s -> {
|
||||||
|
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+s+" "+"*"));
|
||||||
|
});
|
||||||
|
boolQueryBuilder.must(boolQueryBuilderShould);
|
||||||
|
}else {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getStandName()+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
|
||||||
|
}
|
||||||
|
|
||||||
if (searchInfoEO.getIssueTime() != null) {
|
if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) {
|
||||||
Long starttime = searchInfoEO.getIssueTime().getTime();
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*"));
|
||||||
Long endtime = searchInfoEO.getIssueTime().getTime();
|
}
|
||||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
|
||||||
boolQueryBuilder.filter(rangeQueryBuilder);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) {
|
if (searchInfoEO.getIssueTime() != null) {
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*"));
|
Long starttime = searchInfoEO.getIssueTime().getTime();
|
||||||
}
|
Long endtime = searchInfoEO.getIssueTime().getTime();
|
||||||
|
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
||||||
|
boolQueryBuilder.filter(rangeQueryBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandNature())) {
|
if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) {
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getStandNature()+"*"));
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
|
if (StringUtils.isNotBlank(searchInfoEO.getStandNature())) {
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getStandSystem()+"*"));
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getStandNature()+"*"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getStandSystem()+"*"));
|
||||||
}
|
}
|
||||||
|
|
||||||
querySeniorMsg(searchInfoEO,boolQueryBuilder);
|
querySeniorMsg(searchInfoEO,boolQueryBuilder);
|
||||||
@@ -625,51 +744,49 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
* boolQueryBuilder :must
|
* boolQueryBuilder :must
|
||||||
* */
|
* */
|
||||||
public BoolQueryBuilder queryBussStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{
|
public BoolQueryBuilder queryBussStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{
|
||||||
if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){
|
|
||||||
// 高级搜索项,只针对标准
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getStandName()+"*"));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
|
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) {
|
// 高级搜索项,只针对标准
|
||||||
List<String> list = Arrays.asList(searchInfoEO.getTextStatusBuss().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) {
|
||||||
if(list.size() > 1){
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*"));
|
||||||
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
|
}
|
||||||
list.forEach(s -> {
|
if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) {
|
||||||
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+s+"*"));
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*"));
|
||||||
});
|
}
|
||||||
boolQueryBuilder.must(boolQueryBuilderShould);
|
if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) {
|
||||||
}else {
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*"));
|
||||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getTextStatusBuss()+"*"));
|
}
|
||||||
}
|
if (StringUtils.isNotBlank(searchInfoEO.getStandName())) {
|
||||||
}
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getStandName()+"*"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*"));
|
||||||
|
}
|
||||||
|
|
||||||
if (searchInfoEO.getIssueTime() != null) {
|
if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) {
|
||||||
Long starttime = searchInfoEO.getIssueTime().getTime();
|
List<String> list = Arrays.asList(searchInfoEO.getTextStatusBuss().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
||||||
Long endtime = searchInfoEO.getIssueTime().getTime();
|
if(list.size() > 1){
|
||||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder();
|
||||||
boolQueryBuilder.filter(rangeQueryBuilder);
|
list.forEach(s -> {
|
||||||
|
boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+s+"*"));
|
||||||
|
});
|
||||||
|
boolQueryBuilder.must(boolQueryBuilderShould);
|
||||||
|
}else {
|
||||||
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getTextStatusBuss()+"*"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (searchInfoEO.getPutTime() != null) {
|
if (searchInfoEO.getIssueTime() != null) {
|
||||||
Long starttime = searchInfoEO.getPutTime().getTime();
|
Long starttime = searchInfoEO.getIssueTime().getTime();
|
||||||
Long endtime = searchInfoEO.getPutTime().getTime();
|
Long endtime = searchInfoEO.getIssueTime().getTime();
|
||||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
||||||
boolQueryBuilder.filter(rangeQueryBuilder);
|
boolQueryBuilder.filter(rangeQueryBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (searchInfoEO.getPutTime() != null) {
|
||||||
|
Long starttime = searchInfoEO.getPutTime().getTime();
|
||||||
|
Long endtime = searchInfoEO.getPutTime().getTime();
|
||||||
|
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
||||||
|
boolQueryBuilder.filter(rangeQueryBuilder);
|
||||||
}
|
}
|
||||||
querySeniorMsg(searchInfoEO,boolQueryBuilder);
|
querySeniorMsg(searchInfoEO,boolQueryBuilder);
|
||||||
return boolQueryBuilder;
|
return boolQueryBuilder;
|
||||||
@@ -679,22 +796,46 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
public QueryBuilder queryInResult(SeniorSearchInfoEO searchInfoEO){
|
public QueryBuilder queryInResult(SeniorSearchInfoEO searchInfoEO){
|
||||||
// 记录搜索记录到数据库中
|
// 记录搜索记录到数据库中
|
||||||
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
|
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
|
||||||
|
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
|
||||||
|
List<String> fieldList = getStringField();
|
||||||
|
List<String> fieldNameList = new ArrayList<>();
|
||||||
|
String[] standStr = {"content","standSort","standNumber","standYear","stand_name","standEnName","standNatureName",
|
||||||
|
"textStatusName","isRelateAccessName","numbershow","standSystem"};
|
||||||
|
String[] lawsStr = {"content",
|
||||||
|
"standSort","stand_code","standYear","stand_name","standEnName","textStatusBuss"};
|
||||||
|
String[] bussstandStr = {"content","standSort","stand_code","standYear","stand_name","standEnName","textStatusBuss"};
|
||||||
|
for (String field : fieldList) {
|
||||||
|
// 关键字查询属性字段
|
||||||
|
String keyWordField2 = field + "Name";
|
||||||
|
fieldNameList.add(keyWordField2);
|
||||||
|
}
|
||||||
switch (searchInfoEO.getSelectIndex()){
|
switch (searchInfoEO.getSelectIndex()){
|
||||||
case "stand":
|
case "stand":
|
||||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
List<String> listStrings = Stream.of(standStr).collect(Collectors.toList());
|
||||||
numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standSortShow","standstateshow","countryShow","standEnName",
|
listStrings.addAll(fieldNameList);
|
||||||
"synopsis","baseSearchContent",content,"CYSDShow","CLLXShow","standstateshow","ZRLXShow","stand_name","stand_number","citeStand","DTBJH","FGXXSXXXShow","CBBH","YYBJ","XGLC","synopsis","isRelateAccess","GKDWShow","CYSDShow","FBJGShow","ZRLXShow","GXHBQShow","GZZXXName","YQLXShow","FGWHRName","ZRBMName","XGBMShow","SVPPSName","FOShow","XMPGJSShow","BDTBZBH","BYYBJ","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ").minimumShouldMatch("100%");
|
String[] fieldArr = listStrings.stream().toArray(String[]::new);
|
||||||
|
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldArr
|
||||||
|
).minimumShouldMatch("100%");
|
||||||
|
// boolQueryBuilder.should();
|
||||||
|
// for (String field : fieldList) {
|
||||||
|
// // 关键字查询属性字段
|
||||||
|
// String keyWordField2 = field + "Name.keyword";
|
||||||
|
// boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),keyWordField2).minimumShouldMatch("100%"));
|
||||||
|
// }
|
||||||
break;
|
break;
|
||||||
case "laws":
|
case "laws":
|
||||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
List<String> listStringLaws = Stream.of(lawsStr).collect(Collectors.toList());
|
||||||
numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num",
|
listStringLaws.addAll(fieldNameList);
|
||||||
"synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJGShow","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC").minimumShouldMatch("100%");
|
String[] fieldLawsArr = listStringLaws.stream().toArray(String[]::new);
|
||||||
|
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldLawsArr
|
||||||
|
).minimumShouldMatch("100%");
|
||||||
break;
|
break;
|
||||||
case "bussstand":
|
case "bussstand":
|
||||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
List<String> listStringBussstand = Stream.of(bussstandStr).collect(Collectors.toList());
|
||||||
numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standstateshow", "standEnName",replaceStandNumStr,
|
listStringBussstand.addAll(fieldNameList);
|
||||||
replacedStandNumStr,"countryShow","synopsis","standSortShow","ZQCBMShow","ZQCBM","stand_status",
|
String[] fieldBussstandArr = listStringBussstand.stream().toArray(String[]::new);
|
||||||
"baseSearchContent",content,"numbershow","nameshow","standstateshow","issue_time","replaceStandNum","replacedStandNum","QBMJShow","QBSQShow","XHQBMShow","SVPPSName","XGBMName","ZYQCRShow","ZRBMShow","ZQCBMName","QTQCRShow","content","FSRQString","FZRQString","put_time","XGLC","WFSPJSName").minimumShouldMatch("100%");
|
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldBussstandArr
|
||||||
|
).minimumShouldMatch("100%");
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
@@ -752,19 +893,19 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
for (String itemkeyname: keynamelist){
|
for (String itemkeyname: keynamelist){
|
||||||
// put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加
|
// put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加
|
||||||
if(submap.containsKey(itemkeyname)){
|
if(submap.containsKey(itemkeyname)){
|
||||||
submap.put(itemkeyname, (long)submap.get(itemkeyname)+ bucket.getDocCount());
|
submap.put(itemkeyname.trim(), (long)submap.get(itemkeyname)+ bucket.getDocCount());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
submap.put(itemkeyname, bucket.getDocCount());
|
submap.put(itemkeyname.trim(), bucket.getDocCount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(submap.containsKey(keyname)){
|
if(submap.containsKey(keyname)){
|
||||||
submap.put(keyname, (long)submap.get(keyname)+ bucket.getDocCount());
|
submap.put(keyname.trim(), (long)submap.get(keyname)+ bucket.getDocCount());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
submap.put(keyname, bucket.getDocCount());
|
submap.put(keyname.trim(), bucket.getDocCount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user