使用索引器提取可搜索的 Blob 文本或文件内容进行全文搜索时,可以分配分析模式以获取更好的索引结果。 默认情况下,索引器将 Blob content 的属性分析为单个文本区块。 但是,如果所有 Blob 和文件都包含同一编码中的纯文本,则可以使用 text 分析模式显著提高索引编制性能。
分析 text 的建议包括以下特征之一:
- 文件类型为
.txt - 文件属于任何类型,但内容本身为文本(例如程序源代码、HTML、XML 等)。 对于标记语言中的文件,语法字符以静态文本的形式传递。
回想一下,所有索引器都序列化为 JSON。 默认情况下,整个文本文件的内容都会被编入一个称为 "content": "<file-contents>" 的大字段。 新行和返回指令嵌入内容字段中,并表示为 \r\n\。
如果需要更精细或更细粒化的结果,并且文件类型是否兼容,请考虑以下解决方案:
-
delimitedText分析模式(如果源为 CSV) -
jsonArray或者jsonLines,如果源为 JSON,则为
将内容分解为多个部件的替代第三个选项需要 以 AI 扩充的形式提供高级功能。 它添加分析,用于标识文件区块并将其分配给不同的搜索字段。 可以通过 内置技能 (如实体识别或关键字提取)找到完整或部分解决方案,但更可能的解决方案可能是一个自定义学习模型,该模型可理解内容(包装在 自定义技能中)。
设置纯文本索引
若要为纯文本 Blob 编制索引,请在parsingMode请求上创建或更新配置属性设置为text的索引器定义:
PUT https://[service name].search.azure.cn/indexers/[indexer name]?api-version=2025-09-01
Content-Type: application/json
api-key: [admin key]
{
... other parts of indexer definition
"parameters" : { "configuration" : { "parsingMode" : "text" } }
}
默认情况下,假设使用 UTF-8 编码。 若要指定不同的编码,请使用 encoding 配置属性。 支持的 编码列表 位于 .NET 5 和更高版本的支持 列下。
{
... other parts of indexer definition
"parameters" : { "configuration" : { "parsingMode" : "text", "encoding" : "iso-8859-1" } }
}
请求示例
分析模式在索引器定义中指定。
POST https://[service name].search.azure.cn/indexers?api-version=2025-09-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-plaintext-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}