feat: There is no way the
This commit is contained in:
+2
-6
@@ -84,13 +84,9 @@ public class SearchCenterController extends BaseController<Map<String, Object>>
|
|||||||
if (StringUtils.isAlphanumericSpace(searchInfoEO.getSelectIndex())) {
|
if (StringUtils.isAlphanumericSpace(searchInfoEO.getSelectIndex())) {
|
||||||
if(elasticsearchService.isIndexExist(searchInfoEO.getSelectIndex())){
|
if(elasticsearchService.isIndexExist(searchInfoEO.getSelectIndex())){
|
||||||
if("fulltextserch".equals(searchInfoEO.getSelectIndex()) || "fulltextserch"== searchInfoEO.getSelectIndex()){
|
if("fulltextserch".equals(searchInfoEO.getSelectIndex()) || "fulltextserch"== searchInfoEO.getSelectIndex()){
|
||||||
Pattern pattern = Pattern.compile("^[a-zA-Z]+\\s[0-9a-zA-Z\\.\\(\\(\\)\\)\\-\\s]+$");
|
Pattern pattern = Pattern.compile("^[0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-]+$");
|
||||||
if (null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) {
|
if (null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) {
|
||||||
if (pattern.matcher(searchInfoEO.getSelectValue()).matches()) {
|
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
|
||||||
result = searchCenterService.searchSarBykeyAndHighLightNumber(searchInfoEO);
|
|
||||||
}else {
|
|
||||||
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
|
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-14
@@ -943,12 +943,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
// 记录搜索记录到数据库中
|
// 记录搜索记录到数据库中
|
||||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
||||||
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
|
boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
"title"
|
||||||
"title","textContent","textItems"
|
).minimumShouldMatch("100%").field("title",10f));
|
||||||
).minimumShouldMatch("100%").field("title",10f);
|
boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||||
boolQueryBuilder.must(multiQueryBuilder);
|
"textContent"
|
||||||
// boolQueryBuilder.should()
|
).minimumShouldMatch("100%").field("title",10f));
|
||||||
|
boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||||
|
"textItems"
|
||||||
|
).minimumShouldMatch("100%").field("title",10f));
|
||||||
|
boolQueryBuilder.should(QueryBuilders.wildcardQuery("title.keyword","*"+searchInfoEO.getSelectValue()+"*"));
|
||||||
}
|
}
|
||||||
//在结果中检索
|
//在结果中检索
|
||||||
if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword())) {
|
if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword())) {
|
||||||
@@ -1060,16 +1064,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery();
|
||||||
QueryBuilder multiQueryBuilder;
|
QueryBuilder multiQueryBuilder;
|
||||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(value,
|
multiQueryBuilder = QueryBuilders.multiMatchQuery(value,
|
||||||
"title","textContent").minimumShouldMatch("100%").field("title",1f);
|
"title.keyword","textContent.keyword").minimumShouldMatch("100%").field("title.keyword",1f);
|
||||||
boolQueryMust.must(multiQueryBuilder);
|
boolQueryMust.must(multiQueryBuilder);
|
||||||
boolQueryShould.should(QueryBuilders.wildcardQuery("title", "*"+searchInfoEO.getSelectValue()+"*").boost(10f))
|
boolQueryShould.should(QueryBuilders.wildcardQuery("title.keyword", "*"+searchInfoEO.getSelectValue()+"*").boost(10f))
|
||||||
.should(QueryBuilders.wildcardQuery("textContent", "*"+searchInfoEO.getSelectValue()+"*"))
|
.should(QueryBuilders.wildcardQuery("textContent.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
|
||||||
.should(multiQueryBuilder);
|
.should(multiQueryBuilder);
|
||||||
boolQueryBuilder.should(boolQueryShould);
|
boolQueryBuilder.should(boolQueryShould);
|
||||||
//在结果中检索
|
//在结果中检索
|
||||||
// boolQueryBuilder.must(multiQueryBuilder);
|
// boolQueryBuilder.must(multiQueryBuilder);
|
||||||
HighlightBuilder hiBuilder=new HighlightBuilder();
|
HighlightBuilder hiBuilder=new HighlightBuilder();
|
||||||
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title");
|
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title.keyword");
|
||||||
hiBuilder.field(highlightTitle);
|
hiBuilder.field(highlightTitle);
|
||||||
HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent");
|
HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent");
|
||||||
hiBuilder.field(highlightUser);
|
hiBuilder.field(highlightUser);
|
||||||
@@ -1091,7 +1095,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
Map<String, Object> sourceAsMap = searchHit.getSourceAsMap();
|
Map<String, Object> sourceAsMap = searchHit.getSourceAsMap();
|
||||||
//解析高亮字段
|
//解析高亮字段
|
||||||
Map<String, HighlightField> highlightFields = searchHit.getHighlightFields();
|
Map<String, HighlightField> highlightFields = searchHit.getHighlightFields();
|
||||||
HighlightField field= highlightFields.get("title");
|
HighlightField field= highlightFields.get("title.keyword");
|
||||||
if(field!= null){
|
if(field!= null){
|
||||||
Text[] fragments = field.fragments();
|
Text[] fragments = field.fragments();
|
||||||
String n_field = "";
|
String n_field = "";
|
||||||
@@ -1099,11 +1103,11 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
n_field += fragment;
|
n_field += fragment;
|
||||||
}
|
}
|
||||||
//高亮标题覆盖原标题
|
//高亮标题覆盖原标题
|
||||||
sourceAsMap.put("title",n_field);
|
sourceAsMap.put("title.keyword",n_field);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, HighlightField> highlightFieldsnameshowStr = searchHit.getHighlightFields();
|
Map<String, HighlightField> highlightFieldsnameshowStr = searchHit.getHighlightFields();
|
||||||
HighlightField fieldnameshowStr= highlightFieldsnameshowStr.get("textContent");
|
HighlightField fieldnameshowStr= highlightFieldsnameshowStr.get("textContent.keyword");
|
||||||
if(fieldnameshowStr!= null){
|
if(fieldnameshowStr!= null){
|
||||||
Text[] fragments = fieldnameshowStr.fragments();
|
Text[] fragments = fieldnameshowStr.fragments();
|
||||||
String n_field = "";
|
String n_field = "";
|
||||||
@@ -1111,7 +1115,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
n_field += fragment;
|
n_field += fragment;
|
||||||
}
|
}
|
||||||
//高亮标题覆盖原标题
|
//高亮标题覆盖原标题
|
||||||
sourceAsMap.put("textContent",n_field);
|
sourceAsMap.put("textContent.keyword",n_field);
|
||||||
}
|
}
|
||||||
result.add(sourceAsMap);
|
result.add(sourceAsMap);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user