feat: There is no way the, es 全文 检索 调整
This commit is contained in:
+17
-34
@@ -1209,17 +1209,11 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
|
||||
// 记录搜索记录到数据库中
|
||||
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
|
||||
boolSelectValue.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||
"title"
|
||||
).minimumShouldMatch("100%").field("title",10f));
|
||||
boolSelectValue.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||
"textContent"
|
||||
).minimumShouldMatch("100%").field("title",10f));
|
||||
boolSelectValue.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||
"textItems"
|
||||
).minimumShouldMatch("100%").field("title",10f));
|
||||
boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+searchInfoEO.getSelectValue()+"*"));
|
||||
boolQueryBuilder.must(boolSelectValue);
|
||||
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
|
||||
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
|
||||
"sortTitle","numberTitle","yearOrder","nameTitle","title","textContent","issue_time"
|
||||
).minimumShouldMatch("100%").field("sortTitle",1005f).field("numberTitle",1004f).field("yearOrder",1003f).field("nameTitle",1002f).field("title",1000f);
|
||||
boolQueryBuilder.must(multiQueryBuilder);
|
||||
}
|
||||
//在结果中检索
|
||||
if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword())) {
|
||||
@@ -1481,29 +1475,19 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
|
||||
if(null != value || null != select){
|
||||
if (null != value && select == null) {
|
||||
boolSelectValue
|
||||
.should(QueryBuilders.wildcardQuery("sortTitle.keyword", "*" + value.toUpperCase() + "*").boost(1005f))
|
||||
.should(QueryBuilders.wildcardQuery("numberTitle.keyword", "*" + value.toUpperCase() + "*").boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("yearOrder.keyword", "*" + value.toUpperCase() + "*").boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("nameTitle.keyword", "*" + value.toUpperCase() + "*").boost(1001f))
|
||||
.should(QueryBuilders.wildcardQuery("title.keyword", "*" + value.toUpperCase() + "*").boost(1000f))
|
||||
.should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + value.toUpperCase() + "*").boost(0.0000000000000000000000000000000001f))
|
||||
.should(QueryBuilders.wildcardQuery("issue_time", "*" + value.toUpperCase() + "*"));
|
||||
// multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*",
|
||||
// "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f);
|
||||
//// boolQueryMust.must(multiQueryBuilder);
|
||||
// boolQueryShould.should(multiQueryBuilder);
|
||||
QueryBuilder queryBuilder1 = QueryBuilders.multiMatchQuery("");
|
||||
queryBuilder1 = QueryBuilders.multiMatchQuery(value,
|
||||
"sortTitle","numberTitle","yearOrder","nameTitle","title","textContent","issue_time"
|
||||
).minimumShouldMatch("100%").field("sortTitle",1005f).field("numberTitle",1004f).field("yearOrder",1003f).field("nameTitle",1002f).field("title",1000f);
|
||||
boolQueryShould.must(queryBuilder1);
|
||||
}
|
||||
// searchInfoEO.setSelectValue(searchInfoEO.getSelectValue().replace("-","\\-"));
|
||||
if (null != select) {
|
||||
boolSelectValue
|
||||
.should(QueryBuilders.wildcardQuery("sortTitle.keyword", "*" + real.toUpperCase() + "*").boost(1005f))
|
||||
.should(QueryBuilders.wildcardQuery("numberTitle.keyword", "*" + real.toUpperCase() + "*").boost(1003f))
|
||||
.should(QueryBuilders.wildcardQuery("yearOrder.keyword", "*" + real.toUpperCase() + "*").boost(1002f))
|
||||
.should(QueryBuilders.wildcardQuery("nameTitle.keyword", "*" + real.toUpperCase() + "*").boost(1001f))
|
||||
.should(QueryBuilders.wildcardQuery("title.keyword", "*" + real.toUpperCase() + "*").boost(1000f))
|
||||
.should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real.toUpperCase() + "*").boost(0.0000000000000000000000000000000001f))
|
||||
.should(QueryBuilders.wildcardQuery("issue_time", "*" + real.toUpperCase() + "*"));
|
||||
QueryBuilder queryBuilder2 = QueryBuilders.multiMatchQuery("");
|
||||
queryBuilder2 = QueryBuilders.multiMatchQuery(real,
|
||||
"sortTitle","numberTitle","yearOrder","nameTitle","title","textContent","issue_time"
|
||||
).minimumShouldMatch("100%").field("sortTitle",1005f).field("numberTitle",1004f).field("yearOrder",1003f).field("nameTitle",1002f).field("title",1000f);
|
||||
boolQueryShould.must(queryBuilder2);
|
||||
// for (String se : selects) {
|
||||
// if (StringUtils.isNotBlank(se)) {
|
||||
// boolSelectValue
|
||||
@@ -1519,7 +1503,6 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
// .should(QueryBuilders.wildcardQuery("issue_time", "*" + real + "*"));
|
||||
// boolQueryShould.must(boolSelectValue);
|
||||
// }
|
||||
boolQueryShould.must(boolSelectValue);
|
||||
}
|
||||
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
@@ -1541,7 +1524,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
//在结果中检索
|
||||
// boolQueryBuilder.must(multiQueryBuilder);
|
||||
HighlightBuilder hiBuilder=new HighlightBuilder();
|
||||
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title.keyword");
|
||||
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title");
|
||||
hiBuilder.field(highlightTitle);
|
||||
HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent");
|
||||
hiBuilder.field(highlightUser);
|
||||
@@ -1567,7 +1550,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
||||
Map<String, Object> sourceAsMap = searchHit.getSourceAsMap();
|
||||
//解析高亮字段
|
||||
Map<String, HighlightField> highlightFields = searchHit.getHighlightFields();
|
||||
HighlightField field= highlightFields.get("title.keyword");
|
||||
HighlightField field= highlightFields.get("title");
|
||||
if(field!= null){
|
||||
Text[] fragments = field.fragments();
|
||||
String n_field = "";
|
||||
|
||||
Reference in New Issue
Block a user