我有一个关于 Dify 知识库向量搜索行为的问题。
问题
- 在搜索测试中,我使用查询 “mac”
- 搜索结果包含多个文本完全相同的块(chunk)
- 然而,这些块的**相似度分数(SCORE)**却不同
示例:
-
相同文本:
“Macの場合はマウスの支給をしません。各自で調達してください。”
(“For Mac, a mouse is not provided. Please prepare one yourself.”)
(“对于 Mac,不提供鼠标。请自行准备。”) -
但分数不同,例如:
- SCORE: 0.26
- SCORE: 0.19
(请参阅附带的截图)
问题
我想了解为什么会发生这种情况。
-
相同文本块是否预期会因以下原因而具有不同的相似度分数:
- 存储在不同的文档中
- 不同的块 ID 或摄取顺序
- 元数据(文档标题、文件夹、描述等)的差异
- 文本分块时不同的周围上下文
-
或者这可能与以下因素有关:
- 嵌入时间 / 重新嵌入行为
- 向量数据库实现细节
假设 / 环境
- 块文本本身是完全相同的字符串
- 搜索类型是向量搜索(而非关键词搜索)
- 未明确配置相似度阈值
目的
我想澄清以下问题:
- “相同文本通常应导致相同的相似度分数”,还是
- “Dify 中相同文本存在一定程度的分数差异是预期行为”
如果有人遇到过类似的行为或了解底层设计/规范,我将非常感谢您的见解。
