通过 Amazon Kendra 构建企业搜索 - 自然语言查询与 FAQ 自动提取
构建可用自然语言搜索内部文档的企业搜索平台。介绍数据源连接器配置、搜索精度调优和 RAG 集成。
Kendra 概述
Kendra 是利用 ML 的企业搜索服务。与传统关键词搜索不同,用自然语言提问时可从内部规程文档中提取相关段落直接回答。搜索结果高亮显示文档相关段落,通过 40 多个数据源连接器连接内部系统,支持 14 种语言的自然语言查询。也可作为 RAG 的检索器使用。内部采用基于 BERT 的 Transformer 模型进行查询与文档的语义匹配,即使存在表述差异或同义词,也无需依赖精确关键词匹配即可响应搜索。需要注意的是,Kendra 已于 2026 年 7 月 30 日停止接受新客户,仅现有客户可继续使用(截至 2026 年 8 月)。今后构建同类搜索基础设施时,官方承接方案是 Amazon Bedrock Knowledge Bases。
数据源与精度调优
通过数据源连接器连接 S3、SharePoint、Confluence、ServiceNow 等内部系统,定期爬取并自动更新索引。支持 ACL 的连接器根据用户浏览权限过滤搜索结果。搜索精度调优方面,注册自定义同义词词典、重要度提升(特定字段权重调整)和利用用户反馈都很有效。同义词词典支持单向映射(如「年假」→「带薪休假」)和双向同义词,有助于覆盖行业术语和内部缩写。字段提升可为标题或 FAQ 问题文本分配 10 倍评分,将精确匹配优先于噪声较多的正文搜索结果。
RAG 与生成 AI 集成
Kendra 作为 RAG (Retrieval-Augmented Generation) 的检索器,为生成 AI 应用提供高精度搜索结果。结合 Amazon Bedrock 的基础模型和 Kendra,可构建基于内部文档生成准确回答的聊天机器人。通过 Kendra 的 Retrieve API 获取相关文档摘录,作为上下文传递给 LLM 生成回答。基于 ACL 的访问控制确保仅返回符合用户权限的搜索结果,防止机密信息泄露。自定义文档增强可在索引前通过 Lambda 添加元数据或预处理文本。
与 Amazon Q Business 的比较与选择
2024 年正式发布的 Amazon Q Business 是包含 Kendra 索引技术、同时集成生成 AI 回答生成和插件连接的全托管服务。Q Business 提供一站式聊天界面体验,无需从零设计搜索 UI 即可回答内部信息查询。而 Kendra 的优势在于灵活性,可直接调用 Retrieve API 和 Query API,将搜索结果排序逻辑和展示层嵌入自定义应用。当需要将搜索引擎嵌入现有自定义 UI 或门户,或需要自行选择 LLM 构建 RAG 管道时,Kendra 更为合适。如果需要集成「预约会议」「创建工单」等操作,Q Business 的插件机制更具优势。两个服务并非互斥——可以将 Kendra 索引配置为 Q Business 的数据源。
设计最佳实践与常见陷阱
索引设计中,将文档分割为适当大小的块对搜索精度影响重大。Kendra 每文档最多处理 5 MB 文本,但直接导入长篇 PDF 会导致回答焦点模糊。建议按逻辑段落预先分割,并为每个块附加元数据(部门、文档类型、发布日期),启用分面搜索和过滤以提高精度。常见陷阱是同步计划配置错误。将连接器同步设为每小时会对未变更的文档触发重新索引,消耗查询容量单位 (QCU) 并导致成本膨胀。对支持变更检测的连接器使用增量同步;对 S3 连接器,通过 EventBridge 的对象创建事件触发实时同步更具成本效益。FAQ 数据源支持 CSV 或 JSON 格式的问答对注册,将常见问题的回答置顶显示,直接减轻客服负担。
Kendra 费用与优化
Kendra 的费用由索引版本(Developer 或 Enterprise)、连接器同步频率和文档数决定。Developer 版月费约 810 美元,最多 10,000 文档和每天 4,000 次查询(截至 2026 年 8 月)。Enterprise 版月费约 1,008 美元,最多 100,000 文档和每天 8,000 次查询。通过调整连接器同步频率和优化索引文档范围控制成本。利用 FAQ 数据源直接返回常见问题回答,提升搜索精度和用户体验。Developer 版不具备高可用架构,生产工作负载应选择 Enterprise 版,仅在 PoC 阶段使用 Developer 版验证。
总结
Kendra 是基于 ML 的企业搜索服务,提供自然语言查询的问答和作为 RAG 检索器的活用。通过 40 多个数据源连接器连接内部系统,基于 ACL 的访问控制返回符合用户权限的搜索结果。通过自定义文档增强和 FAQ 数据源提高搜索精度。理解与 Q Business 的职责划分,在需要搜索 UI 定制性或构建独立 RAG 管道时选择 Kendra。