Skip to content

fix: 语义模型搜索支持表名并按当前智能体过滤 - #573

Open
Yn897 wants to merge 1 commit into
spring-ai-alibaba:mainfrom
Yn897:fix/semantic-model-table-name-search
Open

fix: 语义模型搜索支持表名并按当前智能体过滤#573
Yn897 wants to merge 1 commit into
spring-ai-alibaba:mainfrom
Yn897:fix/semantic-model-table-name-search

Conversation

@Yn897

@Yn897 Yn897 commented Jul 22, 2026

Copy link
Copy Markdown

Describe what this PR does / why we need it

修复搜索功能两个问题:

  1. 原先 SQL 搜索未匹配 table_name,导致页面「可搜表名」中存在的记录无法被搜索到
  2. 有关键词搜索时忽略了 agentId,返回了其他智能体的记录,造成数据混淆

Does this pull request fix one issue?

Fixes #572

Describe how you did it

  1. 在搜索 SQL 中增加 table_name 和 column_comment 的模糊匹配(LIKE),使表名和列注释可被检索
  2. 在 DAO 层 SQL 条件中强制增加 agent_id = #{agentId} 过滤,确保只返回当前智能体范围内的数据

Describe how to verify it

  1. 输入页面「可搜表名」中存在的表名或注释关键词,验证能正常召回
  2. 切换不同 agentId 执行搜索,验证返回结果仅包含当前智能体的记录
  3. 输入空关键词或不存在的关键词,验证无异常报错

Special notes for reviews

  1. 性能关注:由于新增了 table_name 和 column_comment 的 LIKE 模糊查询,如果数据量较大,建议 Review 时关注:
    (1)是否在 table_name 和 agent_id 上创建了联合索引。
    (2)是否存在索引失效的风险(如 LIKE '%keyword%' 头匹配导致全表扫描)。若已改用 Elasticsearch,请忽略此条。
    (3)兼容性:本次变更仅涉及搜索逻辑,未修改返回 VO(视图对象)结构,前端无需额外适配。
  2. 日志:增加了搜索日志打印,排查问题时可通过 traceId 追踪 SQL(结构化日志),Review 时可确认日志级别设置合理。

搜索 SQL 原先未匹配 table_name,与页面「可搜表名」不符;有关键词时也忽略了
agentId,会返回其它智能体的记录。补上表名/列注释模糊匹配,并在传入 agentId
时限定当前智能体范围。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] 语义模型配置页面不支持表名搜索,且关键词搜索未限定当前智能体

1 participant