文档上传并完成索引,提问时检索结果为空,把同样的文档放进别的工具却能命中。

一开始怀疑是「检索阈值过高,候选全被过滤」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。分段长度与重叠设置不适合中文文档。也可能是索引方式选了经济模式,向量质量差。

少数情况下是文档解析失败,实际入库内容为空。

第一件事是确认分段数量是否正常

python -c "print('check segment count in console')"

随后改高质量索引并重建

python -c "print('rebuild with high quality embedding')"

临时把阈值降到零观察结果

python -c "print('score_threshold=0')"

末了抽样查看分段文本内容

python -c "print(segment_text[:120])")

隔了一天再看,现象没变,说明不是偶发。

别只看报错消失,验证要多做一步。检索能返回相关分段,回答里有引用来源,命中率恢复到可用水平。

分段过长会把答案稀释,过短又会切断上下文,中文技术文档按五百字左右、重叠五十字起步比较稳。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189