Merge branch 'develop_migration' into 'develop_master'
feat: There is no way the, #55761 8986的模糊查询,系统查询不到 See merge request LiuChao/foton-slrs-system-rest!540
This commit is contained in:
+4
-1
@@ -18,6 +18,7 @@ import com.adc.da.search.entity.SarAdvanceSearchVO;
|
||||
import com.adc.da.search.entity.SeniorSearchInfoEO;
|
||||
import com.adc.da.search.service.ElasticsearchService;
|
||||
import com.adc.da.search.service.SearchCenterService;
|
||||
import com.adc.da.search.util.ElasticsearchConstant;
|
||||
import com.adc.da.util.IOUtils;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -117,7 +118,9 @@ public class SearchCenterController extends BaseController<Map<String, Object>>
|
||||
} else {
|
||||
if (searchInfoEO.getQueryStatus() != null && StringUtils.isNotBlank(searchInfoEO.getQueryStatus()) && searchInfoEO.getQueryStatus().equals("advancedSearch") && null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) {
|
||||
result = searchCenterService.searchSarBykey(searchInfoEO);
|
||||
}else {
|
||||
}else if("titleSearch".equals(searchInfoEO.getSelectType())){
|
||||
result = searchCenterService.searchSarConditionBykeyTitle(searchInfoEO);
|
||||
}else{
|
||||
result = searchCenterService.searchSarConditionBykey(searchInfoEO);
|
||||
}
|
||||
// 非动态消息的需要查询为我推荐
|
||||
|
||||
@@ -13,6 +13,8 @@ public interface SearchCenterService {
|
||||
|
||||
List<Map<String, Object>> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception;
|
||||
|
||||
List<Map<String, Object>> searchSarConditionBykeyTitle(SeniorSearchInfoEO searchInfoEO) throws Exception;
|
||||
|
||||
/**
|
||||
* 查询结果集searchResponse装换成List形式
|
||||
* @param searchResponse 需要转换的数据
|
||||
|
||||
+125
-32
@@ -203,6 +203,115 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> searchSarConditionBykeyTitle(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();
|
||||
|
||||
updateIndex(searchInfoEO.getSelectIndex());
|
||||
String sortField1 = "";
|
||||
String sortField2 = "";
|
||||
String sortField3 = "";
|
||||
if("laws".equals(searchInfoEO.getSelectIndex())){
|
||||
sortField1 = "lawsNumber";
|
||||
sortField2 = "lawsYear";
|
||||
sortField3 = "lawsType.keyword";
|
||||
}else {
|
||||
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.DESC)
|
||||
.addSort(sortField3, SortOrder.ASC)
|
||||
.addSort("issue_time_data", SortOrder.DESC)
|
||||
.setSize(searchInfoEO.getPageSize());
|
||||
|
||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){
|
||||
QueryBuilder multiQueryBuilder;
|
||||
switch (searchInfoEO.getSelectIndex()){
|
||||
case "stand":
|
||||
boolQueryShould
|
||||
.should(QueryBuilders.wildcardQuery("standSort.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1005f))
|
||||
.should(QueryBuilders.termQuery("standNumber", searchInfoEO.getSelectValue().toUpperCase()).boost(1004f))
|
||||
.should(QueryBuilders.wildcardQuery("standYear.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("nameshow.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f))
|
||||
.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*" + searchInfoEO.getSelectValue() + "*").boost(999f));
|
||||
break;
|
||||
case "laws":
|
||||
boolQueryShould.should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("lawsEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||
break;
|
||||
case "bussstand":
|
||||
boolQueryShould
|
||||
.should(QueryBuilders.wildcardQuery("standSort.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1005f))
|
||||
.should(QueryBuilders.termQuery("standNumber", searchInfoEO.getSelectValue().toUpperCase()).boost(1004f))
|
||||
.should(QueryBuilders.wildcardQuery("standYear.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("nameshow.keyword", searchInfoEO.getSelectValue().toUpperCase()).boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("stand_code.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f))
|
||||
.should(QueryBuilders.wildcardQuery("stand_code.keyword", "*" + searchInfoEO.getSelectValue() + "*").boost(999F));
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
if(boolQueryShould!=null){
|
||||
boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0));
|
||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
||||
if (StringUtils.isNotBlank(searchInfoEO.getType())) {
|
||||
boolQueryShould.must(QueryBuilders.wildcardQuery("type.keyword", "*"+searchInfoEO.getType()+"*"));
|
||||
}
|
||||
if (StringUtils.isNotBlank(searchInfoEO.getStandType()) && StringUtils.isNotBlank(searchInfoEO.getSelectIndex())) {
|
||||
if(searchInfoEO.getSelectIndex().equals("bussstand")){
|
||||
boolQueryShould.must(QueryBuilders.wildcardQuery("type.keyword", "*"+searchInfoEO.getStandType()+"*"));
|
||||
}else {
|
||||
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()+"*"));
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(searchInfoEO.getLawsSyqy())) {
|
||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSyqy.keyword", "*"+searchInfoEO.getLawsSyqy()+"*"));
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(searchInfoEO.getLawsSycx())) {
|
||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSycx.keyword", "*"+searchInfoEO.getLawsSycx()+"*"));
|
||||
}
|
||||
boolQueryBuilder.must(boolQueryShould);
|
||||
}else {
|
||||
if ("stand".equals(searchInfoEO.getSelectIndex()) && StringUtils.isNotBlank(searchInfoEO.getStandType())) {
|
||||
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
|
||||
}
|
||||
boolQueryBuilder.must(boolQueryShould);
|
||||
}
|
||||
|
||||
searchRequestBuilder.setQuery(boolQueryBuilder).setTrackTotalHits(true);
|
||||
|
||||
// 获取查询到的结果
|
||||
result = countStandSearchResult(searchRequestBuilder,searchInfoEO);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// 条件
|
||||
@Override
|
||||
public List<Map<String, Object>> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception {
|
||||
@@ -259,30 +368,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
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()+"*"));
|
||||
boolQueryShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||
break;
|
||||
case "laws":
|
||||
// boolQueryShould.should(QueryBuilders.wildcardQuery("lawsTypeName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("issueCompany.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsTextStateName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsYearName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsBulletin.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsLabel.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
// .should(QueryBuilders.wildcardQuery("lawsRemark.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||
boolQueryShould.should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("lawsEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||
if (isRqFormat(searchInfoEO.getSelectValue())) {
|
||||
Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||
Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||
@@ -295,12 +390,10 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
}
|
||||
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()+"*"));
|
||||
boolQueryShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||
.should(QueryBuilders.wildcardQuery("nameshow.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
|
||||
if (isRqFormat(searchInfoEO.getSelectValue())) {
|
||||
Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||
Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime();
|
||||
@@ -798,14 +891,14 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
String[] lawsStr = null;
|
||||
String[] bussstandStr = null;
|
||||
if (StringUtils.isNotBlank(searchInfoEO.getSelectType()) && "titleSearch".equals(searchInfoEO.getSelectType())){
|
||||
standStr = new String[]{"numbershow","nameshow"};
|
||||
standStr = new String[]{"numbershow","nameshow","standNumber"};
|
||||
lawsStr = new String[]{"lawsNo","lawsName"};
|
||||
bussstandStr = new String[]{"numbershow","nameshow"};
|
||||
}else {
|
||||
standStr = new String[]{"content", "standEnName", "standNatureName",
|
||||
standStr = new String[]{"standEnName", "standNatureName","standNumber",
|
||||
"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"};
|
||||
lawsStr = new String[]{"lawsEnName","lawsName", "lawsNo", "issueCompany", "lawsTextState", "lawsSyqy", "lawsSycx", "isRelateAccess", "lawsNotisyncNum", "lawsBulletin", "lawsLabel", "lawsRemark"};
|
||||
bussstandStr = new String[]{"stand_code", "standEnName", "nameshow", "standstateshow", "numbershow", "textStatusBuss", "textStatusBussName", "NYLXCLASS", "CLLX"};
|
||||
for (String field : fieldList) {
|
||||
// 关键字查询属性字段
|
||||
String keyWordField2 = field + "Name";
|
||||
|
||||
@@ -14,4 +14,19 @@ public class ElasticsearchConstant {
|
||||
public static final String SUCCESS_DELETED = "DELETED";
|
||||
//删除过程中未找到对应数据返回结果
|
||||
public static final String HAVE_NOT_FOUND= "NOT_FOUND";
|
||||
|
||||
//字符串转换为小写
|
||||
public static String exChangeLower(String str){
|
||||
//把一个字符串中的大写转为小写
|
||||
String real = "";
|
||||
for(int i=0;i<str.length();i++){
|
||||
//如果是大写
|
||||
if(!(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase()))){
|
||||
real += str.substring(i, i+1).toLowerCase();
|
||||
}else{
|
||||
real += str.substring(i, i+1);
|
||||
}
|
||||
}
|
||||
return real;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user