查询中添加关键词结果

This commit is contained in:
670788339
2023-07-18 18:54:04 +08:00
parent e1bc1779f0
commit ea805b15aa

View File

@@ -3,10 +3,7 @@ package com.xboe.module.elasticsearc;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
@@ -410,6 +407,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
BoolQueryBuilder keywordQuery = QueryBuilders.boolQuery();
keywordQuery.should(QueryBuilders.wildcardQuery("name", "*"+words+"*").boost(9f));
keywordQuery.should(QueryBuilders.wildcardQuery("teacher", "*"+words+"*").boost(7f));
keywordQuery.should(QueryBuilders.wildcardQuery("keywords", "*"+words+"*").boost(8f));
//keywordQuery.should(QueryBuilders.queryStringQuery(words).field("name", 9f));//用此方法无法查询出有转义符的处理
//keywordQuery.should(QueryBuilders.queryStringQuery(words).field("teacher", 8f));
@@ -426,7 +424,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
//// //其它是教师,教师也是 like查询 它只是2位权重
//// boolQuery.should(QueryBuilders.queryStringQuery(params.getKeywords()).field("teacher", 5f));
//// //关键词查询
//// boolQuery.should(QueryBuilders.queryStringQuery(params.getKeywords()).field("keywords", 3f));
// boolQuery.should(QueryBuilders.queryStringQuery(params.getKeywords()).field("keywords", 10f));
////
//// //boolQuery.should(QueryBuilders.fuzzyQuery("keywords",params.getKeywords()).boost(3f));
//// //分词查询权重是1默念
@@ -437,7 +435,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
// //其它是教师,教师也是 like查询 它只是5权重
// //keywordQuery.should(QueryBuilders.queryStringQuery(params.getKeywords()).field("teacher", 5f));
// //关键词查询 like查询 它只是3权重
// //keywordQuery.should(QueryBuilders.queryStringQuery(params.getKeywords()).field("keywords", 3f));
// keywordQuery.should(QueryBuilders.queryStringQuery(params.getKeywords()).field("keywords", 3f));
//
// //boolQuery.should(QueryBuilders.fuzzyQuery("keywords",params.getKeywords()).boost(3f));
// //分词查询权重是1
@@ -697,7 +695,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
}
cft.setTeacher(fmtStr.toString());
}
if(keywords!= null){
Text[] fragments = keywords.fragments();
StringBuffer fmtStr = new StringBuffer("");