跳转到内容
搜索文档

关键词搜索

最后更新 查看 MarkdownAgent 设置

启用关键词搜索以精确匹配包含您查询词条的分块。有关搜索模式的概述,请参阅 搜索模式

启用关键词搜索

在创建或更新实例时,将 index_method.keyword 设置为 true。您可以单独使用关键词搜索,也可以与向量搜索结合使用以进行 混合搜索

字段 (Field) 类型 (Type) 默认值 (Default) 描述 (Description)
vector boolean true 启用向量 (语义) 搜索。
keyword boolean false 启用关键词 (BM25) 搜索。

vectorkeyword 必须至少有一个为 true。更改 index_method 会触发对您内容的完整重新建立索引。

const instance = await env.AI_SEARCH.create({
	id: "my-instance",
	index_method: {
		vector: false,
		keyword: true,
	},
});

关键词分词器

indexing_options 内部的 keyword_tokenizer 字段控制如何将文本拆分为分词。更改此项会触发完整重新建立索引。

值 (Value) 默认值 (Default) 描述 (Description)
porter 应用 Porter 词干提取。“running” 会匹配 “run”。最适合自然语言。
trigram 重叠的 3 字符窗口。“config” 会匹配 “configuration”。最适合代码。

关键词匹配模式

retrieval_options 内部的 keyword_match_mode 字段控制如何组合多个查询词条。

值 (Value) 默认值 (Default) 描述 (Description)
and 所有查询词条都必须出现。高精度,结果较少。
or 任何查询词条匹配即可。高召回率,结果较多。

您可以按请求覆盖 keyword_match_mode

const instance = env.AI_SEARCH.get("my-instance");

const results = await instance.search({
	messages: [{ role: "user", content: "What is Cloudflare?" }],
	ai_search_options: {
		retrieval: {
			keyword_match_mode: "or",
		},
	},
});

限制

在 Workers 付费版 (Paid) 方案中,启用了关键词搜索的实例每个实例最高支持 500,000 个文件,而仅向量的实例为 1,000,000 个文件。请参阅 限制与定价 以获取完整的限制列表。

这篇文档对您有帮助吗?