查询中添加关键词结果

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