Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
dcb4de0c
提交
dcb4de0c
authored
11月 13, 2024
作者:
yanxin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
知识库检索逻辑优化
上级
0728e2b0
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
31 行增加
和
32 行删除
+31
-32
KbKnowledgeProjectServiceImpl.java
.../knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
+3
-0
KnowledgeServiceImpl.java
.../com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
+24
-32
application.yml
src/main/resources/application.yml
+4
-0
没有找到文件。
src/main/java/com/zzsn/knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
浏览文件 @
dcb4de0c
...
@@ -370,6 +370,9 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
...
@@ -370,6 +370,9 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
@Override
@Override
public
List
<
KbKnowledgeProject
>
getUserList
()
{
public
List
<
KbKnowledgeProject
>
getUserList
()
{
List
<
String
>
userIds
=
knowledgeService
.
groupUserList
(
Constants
.
SC_USER
);
List
<
String
>
userIds
=
knowledgeService
.
groupUserList
(
Constants
.
SC_USER
);
if
(
userIds
.
isEmpty
()){
return
new
ArrayList
<>();
}
return
kbKnowledgeProjectMapper
.
getListByUser
(
userIds
);
return
kbKnowledgeProjectMapper
.
getListByUser
(
userIds
);
}
}
...
...
src/main/java/com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
浏览文件 @
dcb4de0c
...
@@ -41,10 +41,7 @@ import org.elasticsearch.action.search.SearchRequest;
...
@@ -41,10 +41,7 @@ import org.elasticsearch.action.search.SearchRequest;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.*
;
import
org.elasticsearch.index.query.MultiMatchQueryBuilder
;
import
org.elasticsearch.index.query.NestedQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.aggregations.Aggregation
;
import
org.elasticsearch.search.aggregations.Aggregation
;
import
org.elasticsearch.search.aggregations.AggregationBuilders
;
import
org.elasticsearch.search.aggregations.AggregationBuilders
;
...
@@ -496,49 +493,44 @@ class KnowledgeServiceImpl implements IKnowledgeService {
...
@@ -496,49 +493,44 @@ class KnowledgeServiceImpl implements IKnowledgeService {
//搜索条件
//搜索条件
if
(
StringUtils
.
isNotBlank
(
knowledgeParam
.
getSearchInfo
()))
{
if
(
StringUtils
.
isNotBlank
(
knowledgeParam
.
getSearchInfo
()))
{
MultiMatchQueryBuilder
multiMatchQueryBuilder
=
QueryBuilders
.
multiMatchQuery
(
knowledgeParam
.
getSearchInfo
());
MultiMatchQueryBuilder
multiMatchQueryBuilder
=
QueryBuilders
.
multiMatchQuery
(
knowledgeParam
.
getSearchInfo
());
if
(
"
精确
"
.
equals
(
knowledgeParam
.
getSearchAccuracy
()))
{
if
(
"
模糊
"
.
equals
(
knowledgeParam
.
getSearchAccuracy
()))
{
multiMatchQueryBuilder
.
type
(
MultiMatchQueryBuilder
.
Type
.
PHRASE
);
multiMatchQueryBuilder
.
type
(
MultiMatchQueryBuilder
.
Type
.
PHRASE
);
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
1
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
1
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
multiMatchQueryBuilder
.
field
(
"title"
);
boolQuery
.
must
(
QueryBuilders
.
matchQuery
(
"title"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
multiMatchQueryBuilder
);
}
else
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
2
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
}
else
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
2
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
BoolQueryBuilder
nestedBoolQueryBuilder
=
QueryBuilders
.
boolQuery
();
MatchQueryBuilder
matchQueryBuilder
=
QueryBuilders
.
matchQuery
(
"contents.content"
,
knowledgeParam
.
getSearchInfo
());
multiMatchQueryBuilder
.
field
(
"contents.content"
);
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
matchQueryBuilder
,
ScoreMode
.
None
);
nestedBoolQueryBuilder
.
must
(
multiMatchQueryBuilder
);
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
nestedBoolQueryBuilder
,
ScoreMode
.
None
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
should
(
nestedQueryBuilder
);
boolQueryBuilder
.
should
(
nestedQueryBuilder
);
boolQueryBuilder
.
should
(
QueryBuilders
.
matchPhraseQuery
(
"contentWithTag"
,
knowledgeParam
.
getSearchInfo
()));
boolQueryBuilder
.
should
(
QueryBuilders
.
matchPhrase
Prefix
Query
(
"contentWithTag"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
boolQueryBuilder
);
boolQuery
.
must
(
boolQueryBuilder
);
}
else
{
}
else
{
multiMatchQueryBuilder
.
field
(
"title"
,
60
);
MatchQueryBuilder
matchQueryBuilder
=
QueryBuilders
.
matchQuery
(
"contents.content"
,
knowledgeParam
.
getSearchInfo
());
BoolQueryBuilder
nestedBoolQueryBuilder
=
QueryBuilders
.
boolQuery
();
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
matchQueryBuilder
,
ScoreMode
.
None
);
multiMatchQueryBuilder
.
field
(
"contents.content"
,
20
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
nestedBoolQueryBuilder
.
must
(
multiMatchQueryBuilder
);
boolQueryBuilder
.
should
(
nestedQueryBuilder
);
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
nestedBoolQueryBuilder
,
ScoreMode
.
None
);
boolQueryBuilder
.
should
(
QueryBuilders
.
matchQuery
(
"contentWithTag"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
nestedQueryBuilder
);
boolQueryBuilder
.
should
(
QueryBuilders
.
matchQuery
(
"title"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
boolQueryBuilder
);
}
}
}
else
{
}
else
{
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
1
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
1
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
multiMatchQueryBuilder
.
field
(
"title"
);
boolQuery
.
must
(
QueryBuilders
.
matchPhrasePrefixQuery
(
"title"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
multiMatchQueryBuilder
);
}
else
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
2
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
}
else
if
(
null
!=
knowledgeParam
.
getSearchScope
()
&&
Integer
.
valueOf
(
2
).
equals
(
knowledgeParam
.
getSearchScope
()))
{
BoolQueryBuilder
nestedBoolQueryBuilder
=
QueryBuilders
.
boolQuery
();
MatchPhrasePrefixQueryBuilder
matchPhrasePrefixQueryBuilder
=
QueryBuilders
.
matchPhrasePrefixQuery
(
"contents.content"
,
knowledgeParam
.
getSearchInfo
());
multiMatchQueryBuilder
.
field
(
"contents.content"
);
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
matchPhrasePrefixQueryBuilder
,
ScoreMode
.
None
);
nestedBoolQueryBuilder
.
must
(
multiMatchQueryBuilder
);
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
nestedBoolQueryBuilder
,
ScoreMode
.
None
);
boolQuery
.
must
(
nestedQueryBuilder
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
should
(
nestedQueryBuilder
);
boolQueryBuilder
.
should
(
nestedQueryBuilder
);
boolQueryBuilder
.
should
(
QueryBuilders
.
matchQuery
(
"contentWithTag"
,
knowledgeParam
.
getSearchInfo
()));
boolQueryBuilder
.
should
(
QueryBuilders
.
match
PhrasePrefix
Query
(
"contentWithTag"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
boolQueryBuilder
);
boolQuery
.
must
(
boolQueryBuilder
);
}
else
{
}
else
{
multiMatchQueryBuilder
.
field
(
"title"
,
3
);
MatchPhrasePrefixQueryBuilder
matchPhrasePrefixQueryBuilder
=
QueryBuilders
.
matchPhrasePrefixQuery
(
"contents.content"
,
knowledgeParam
.
getSearchInfo
());
BoolQueryBuilder
nestedBoolQueryBuilder
=
QueryBuilders
.
boolQuery
();
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
matchPhrasePrefixQueryBuilder
,
ScoreMode
.
None
);
multiMatchQueryBuilder
.
field
(
"contents.content"
,
1
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
nestedBoolQueryBuilder
.
must
(
multiMatchQueryBuilder
);
boolQueryBuilder
.
should
(
nestedQueryBuilder
);
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
nestedBoolQueryBuilder
,
ScoreMode
.
None
);
boolQueryBuilder
.
should
(
QueryBuilders
.
matchPhrasePrefixQuery
(
"contentWithTag"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
nestedQueryBuilder
);
boolQueryBuilder
.
should
(
QueryBuilders
.
matchPhrasePrefixQuery
(
"title"
,
knowledgeParam
.
getSearchInfo
()));
boolQuery
.
must
(
boolQueryBuilder
);
}
}
}
}
}
}
...
...
src/main/resources/application.yml
浏览文件 @
dcb4de0c
...
@@ -27,6 +27,10 @@ spring:
...
@@ -27,6 +27,10 @@ spring:
brokers
:
114.116.36.231:9092
brokers
:
114.116.36.231:9092
zkNodes
:
114.116.36.231:2181
zkNodes
:
114.116.36.231:2181
requiredAcks
:
1
requiredAcks
:
1
# configuration:
# security.protocol: SASL_PLAINTEXT
# sasl.mechanism: PLAIN
# sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="gangtie" password="krJZbb#S5UNR";
redis
:
redis
:
database
:
9
database
:
9
host
:
114.116.90.53
host
:
114.116.90.53
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论