From 27a04f7c1b0d53d64a22d56f70f8fc4ed373735b Mon Sep 17 00:00:00 2001
From: super_liu <396572590@qq.com>
Date: Thu, 28 Apr 2022 19:37:58 +0800
Subject: [PATCH 1/2] feat: There is no way the, xxxx
---
.../search/service/impl/SearchCenterServiceImpl.java | 10 +++++-----
.../mapper/sarStandardsInfo/SarStandardsInfoMapper.xml | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java
index b7a56d17..221c1615 100644
--- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java
+++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java
@@ -1401,13 +1401,13 @@ public class SearchCenterServiceImpl implements SearchCenterService {
if (null != value && selects == null) {
boolSelectValue.should(QueryBuilders.multiMatchQuery(value,
"title"
- ).minimumShouldMatch("100%"));
+ ).minimumShouldMatch("100%").field("title",1000f));
boolSelectValue.should(QueryBuilders.multiMatchQuery(value,
"textContent"
- ).minimumShouldMatch("100%"));
+ ).minimumShouldMatch("100%").field("title",1000f));
boolSelectValue.should(QueryBuilders.multiMatchQuery(value,
"textItems"
- ).minimumShouldMatch("100%"));
+ ).minimumShouldMatch("100%").field("title",1000f));
boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+value+"*"));
// multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*",
// "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f);
@@ -1417,8 +1417,8 @@ public class SearchCenterServiceImpl implements SearchCenterService {
// searchInfoEO.setSelectValue(searchInfoEO.getSelectValue().replace("-","\\-"));
if (null != selects) {
boolSelectValue
- .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real + "*"))
- .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real + "*"))
+ .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real + "*").boost(1000f))
+ .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real + "*").boost(0.0000000000000000000000000000000001f))
.should(QueryBuilders.wildcardQuery("issue_time", "*" + real + "*"));
// for (String se : selects) {
// if (StringUtils.isNotBlank(se)) {
diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml
index 1f8be4eb..3c390666 100644
--- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml
+++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml
@@ -980,7 +980,7 @@
and stand_type = #{page.standType}
- and MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day)
+ and SAR_STANDARDS_INFO.MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day)
From a50b18728df682730be0bea0eb342bece014e2bc Mon Sep 17 00:00:00 2001
From: super_liu <396572590@qq.com>
Date: Thu, 28 Apr 2022 21:24:03 +0800
Subject: [PATCH 2/2] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=20?=
=?UTF-8?q?=E4=BC=98=E5=8C=96ES=20=E6=9D=83=E9=87=8D=20=E5=85=A8=E6=96=87?=
=?UTF-8?q?=E6=90=9C=E7=B4=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/SearchCenterServiceImpl.java | 53 +++++++++++++------
.../mybatis/mapper/sys/DicTypeEOMapper.xml | 1 +
2 files changed, 37 insertions(+), 17 deletions(-)
diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java
index 221c1615..d1d3f01d 100644
--- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java
+++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java
@@ -4,6 +4,8 @@ import com.adc.da.search.entity.*;
import com.adc.da.search.service.SearchCenterService;
import com.adc.da.search.util.DateUtil;
import com.adc.da.search.util.InitStandAttrSearchUtil;
+import com.adc.da.sys.dao.DicTypeEODao;
+import com.adc.da.sys.entity.DicTypeEO;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -30,7 +32,6 @@ import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;
-import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.json.JSONTokener;
import org.slf4j.LoggerFactory;
@@ -57,6 +58,9 @@ public class SearchCenterServiceImpl implements SearchCenterService {
private TransportClient client;
+ @Autowired
+ private DicTypeEODao dicTypeEODao;
+
@PostConstruct
public void init() {
client = this.transportClient;
@@ -1293,12 +1297,22 @@ public class SearchCenterServiceImpl implements SearchCenterService {
String real = searchInfoEO.getSelectValue();
boolean isReal = false;
int num = searchInfoEO.getSelectValue().indexOf(" ");
+ //查询字典表,形成Hash映射提升速度
+ List dicInfo = dicTypeEODao.getDicInfo("dic_id","dic_type_code", "dic_type_name");
+ Map dicMap = dicInfo.stream()
+ .filter(item-> ("JKSADFH564S".equals(item.getDicId()) || "NGETEMDJDI".equals(item.getDicId()) || "sg9gb7liywkrnv3pa5uh".equals(item.getDicId())) && !item.getDicTypeCode().isEmpty())
+ .collect(Collectors.toMap(DicTypeEO::getDicTypeCode,DicTypeEO::getDicTypeName,(value1, value2 )->value2));
String value = "";
String select = "";
if (-1 != num) {
value = searchInfoEO.getSelectValue().substring(0, num).trim().toUpperCase();
- select = searchInfoEO.getSelectValue().substring(num + 1).trim();
- real = value + " " + select;
+ if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){
+ select = searchInfoEO.getSelectValue().substring(num + 1).trim();
+ real = value + " " + select;
+ }else {
+ select = null;
+ value = real;
+ }
}else{
String reg = ".*[0-9].*";
if("-".contains(real)){
@@ -1322,7 +1336,12 @@ public class SearchCenterServiceImpl implements SearchCenterService {
value = value.toUpperCase();
}
}
- real = value + " " + select;
+ if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){
+ real = value + " " + select;
+ }else {
+ select = null;
+ value = real;
+ }
}else if(real.matches(reg)){
value = real.replaceAll("[^(A-Za-z\\/)]", "");
String[] valArr = value.split("\\/");
@@ -1345,7 +1364,13 @@ public class SearchCenterServiceImpl implements SearchCenterService {
value = value.toUpperCase();
}
}
- real = value + " " + select;
+ System.out.println(dicMap.get(value));
+ if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){
+ real = value + " " + select;
+ }else {
+ select = null;
+ value = real;
+ }
}else {
value = real;
select = "";
@@ -1399,16 +1424,10 @@ public class SearchCenterServiceImpl implements SearchCenterService {
if(null != value || null != selects){
if (null != value && selects == null) {
- boolSelectValue.should(QueryBuilders.multiMatchQuery(value,
- "title"
- ).minimumShouldMatch("100%").field("title",1000f));
- boolSelectValue.should(QueryBuilders.multiMatchQuery(value,
- "textContent"
- ).minimumShouldMatch("100%").field("title",1000f));
- boolSelectValue.should(QueryBuilders.multiMatchQuery(value,
- "textItems"
- ).minimumShouldMatch("100%").field("title",1000f));
- boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+value+"*"));
+ boolSelectValue
+ .should(QueryBuilders.wildcardQuery("title.keyword", "*" + value + "*").boost(1000f))
+ .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + value + "*").boost(0.0000000000000000000000000000000001f))
+ .should(QueryBuilders.wildcardQuery("issue_time", "*" + value + "*"));
// multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*",
// "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f);
//// boolQueryMust.must(multiQueryBuilder);
@@ -1468,14 +1487,13 @@ public class SearchCenterServiceImpl implements SearchCenterService {
updateIndex("fulltextserch",99999999,2);
searchRequestBuilder = client.prepareSearch("fulltextserch")
- .addSort(SortBuilders.fieldSort("issue_time").unmappedType("String").order(SortOrder.DESC))
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.highlighter(hiBuilder)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
.setSize(searchInfoEO.getPageSize());
searchRequestBuilder.setQuery(boolQueryShould).setTrackTotalHits(true);
- searchRequestBuilder.addSort(SortBuilders.fieldSort("issue_time").unmappedType("String").order(SortOrder.DESC));
+
// 获取查询到的结果
SearchResponse response = searchRequestBuilder.get();
for (SearchHit searchHit : response.getHits().getHits()) {
@@ -1508,6 +1526,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
result.add(sourceAsMap);
}
searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits().value);
+ //给aqi升序排,null放到最后
// result.sort((o1, o2) -> {
// if (o1.get("issue_time") != null && o2.get("issue_time") != null) {
// return o2.get("issue_time").toString().compareTo(o1.get("issue_time").toString());
diff --git a/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml b/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml
index 61e3a9b7..2bcc302c 100644
--- a/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml
+++ b/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml
@@ -609,6 +609,7 @@
${item} is not NULL
+ and TS_DICTYPE.VALID_FLAG= '0'