You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于LlamaIndex和Qdrant从指定document_id查询特定文档?

仅从特定文档查询的实现方法

SimpleDirectoryReader在索引文档时,会自动为每个文档添加file_name、file_path这类元数据,我们可以利用这些元数据在查询阶段过滤出目标文档,具体实现如下:

方法1:自定义带过滤条件的检索器

直接创建指定过滤规则的检索器,再用它初始化聊天引擎,就能限定只从特定文档中搜索:

from llama_index.core.retrievers import VectorIndexRetriever
from llama_index.core.chat_engine import ContextChatEngine

# 创建检索器,指定要查询的目标文件名
retriever = VectorIndexRetriever(
    index=index,
    similarity_top_k=5,  # 保持你原来的Top-K配置
    filter={"file_name": "你的目标文档名.md"}  # 替换成实际文件名
)

# 用带过滤的检索器构建聊天引擎
chat_engine = ContextChatEngine.from_defaults(
    retriever=retriever,
    service_context=service_context,
    verbose=False
)

# 发起查询,只会从指定文档中匹配结果
chat_engine.chat("Who is wiki?")

如果需要从多个特定文档查询,可使用or逻辑组合条件:

filter={
    "or": [
        {"file_name": "文档1.md"},
        {"file_name": "文档2.txt"}
    ]
}

补充说明

  • 除了file_name,你还可以用file_path(完整文件路径)作为过滤字段,适合区分同名文件;
  • 如果索引时自定义了其他元数据(比如文档类别标签),也可以用对应字段构建过滤规则。

内容的提问来源于stack exchange,提问作者Ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:14:59