在 Azure AI 搜索中索引纯文本 blob 和文件

适用对象:Blob 索引器文件索引器

使用索引器提取可搜索 Blob 文本或文件内容进行全文搜索时,可以分配一种分析模式以获得更好的索引结果。 默认情况下,索引器将 blob 的 content 属性分析为单一文本块。 但是,如果所有 blob 和文件都包含采用同一编码的纯文本,则可以通过使用 text 分析模式显著提高索引编制性能。

text 分析的建议包括以下特征之一:

  • 文件类型为 .txt
  • 文件属于任何类型,但内容本身是文本(例如,程序源代码、HTML、XML 等)。 对于标记语言中的文件,语法字符以静态文本的形式出现。

回想一下,所有索引器都序列化为 JSON。 默认情况下,整个文本文件的内容在一个大字段中索引为 "content": "<file-contents>"。 新行和返回指令嵌入到内容字段中,并表示为 \r\n\

如果想要更精细或更精细的结果,并且文件类型兼容,请考虑以下解决方案:

另一种将内容分解为多个部分的第三种选择需要 AI 扩充形式的高级功能。 其添加的分析用于标识文件块并将文件块分配给不同的搜索字段。 可能会通过实体识别或关键词提取等内置技能找到完整或部分的解决方案,但解决方案更有可能是理解内容的自定义学习模型,包含在自定义技能中。

设置纯文本编制索引

若要对纯文本 blob 进行索引,请在创建索引器请求中将 parsingMode 配置属性设置为 text 的情况下,创建或更新索引器定义:

PUT https://[service name].search.azure.cn/indexers/[indexer name]?api-version=2024-07-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" : "windows-1252" } }
}

请求示例

在索引器定义中指定分析模式。

POST https://[service name].search.azure.cn/indexers?api-version=2024-07-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" } }
}

后续步骤