有关 Azure AI 搜索中 AI 扩充的提示
本文包含一些提示,可帮助你开始使用 AI 扩充和编制索引期间使用的技能集。
提示 1:从简单开始,从小处做起
Azure 门户中的 导入数据向导和导入和矢量化数据向导均支持 AI 扩充。 无需编写任何代码,即可创建和检查扩充管道中使用的所有对象:索引、索引器、数据源和技能集。
另一种简单的开始方式是创建一个数据源,该数据源的表中只包含少量文档或行,用于代表将要编制索引的文档。 小型数据集是提高查找问题和解决问题速度的最佳方式。请通过端到端管道运行示例,并检查结果是否符合需求。 对结果满意以后,即可向数据源添加更多文件。
提示 2:即使发生一些失败,也要查看哪些部分有效
有时候,一个小的故障就会让索引器无法运行。 这没什么,只需按计划逐个解决问题即可。 但是,可能需要忽略特定类型的错误,让索引器继续运行,这样就可以看到哪些流实际上是可以运行的。
要在开发过程中忽略错误,请将 maxFailedItems
和 maxFailedItemsPerBatch
设置为 -1 作为索引器定义的一部分。
{
// rest of your indexer definition
"parameters":
{
"maxFailedItems":-1,
"maxFailedItemsPerBatch":-1
}
}
注意
最佳做法是,为生产工作负载将 maxFailedItems
和 maxFailedItemsPerBatch
设置为 0
提示 3:使用调试会话排查问题
调试会话是一个可视化编辑器,可以显示技能集的依赖项图、输入和输出以及定义。 它的工作原理是使用当前索引器和技能集配置从搜索索引加载单个文档。 然后,可以运行整个技能集,其范围限定为单个文档。 在调试会话中,可以识别和解决错误、验证更改,并将更改提交到父技能集。 有关演练,请参阅教程:调试会话。
提示 4:预期内容没有出现
如果缺少内容,请在 Azure 门户中检查已删除的文档。 在搜索服务页中,打开“索引器”并查看“已成功文档”列列。 单击到索引器执行历史记录以查看特定错误。
如果问题与文件大小相关,则可能会看到这样的错误:“Blob <file-name> 的大小为 <file-size> 字节,这超出了当前服务层级的文档提取的最大大小。”有关索引器限制的详细信息,请参阅服务限制。
内容没有出现的另一原因可能与输入/输出映射错误相关。 例如,输出目标名称为“People”,但索引字段名称为“people”(小写)。 系统可能会针对整个管道返回“201 成功”消息,因此你认为索引编制成功,但实际上有一个字段是空的。
提示 5:延长处理时间至超出最长运行时间
即使情况很简单,图像分析也是计算密集型操作,因此当图像特别大或特别复杂时,处理时间可能会超过允许的最长时间。
对于具有技能集的索引器,技能集执行的上限对大多数层为 2 小时。 如果技能集处理无法在该时间段内完成,则可以将索引器设置为 2 小时定期计划,以便索引器可以在离开位置继续处理。
已计划的索引编制会在上一个已知良好文档处继续运行。 使用定期计划时,索引器可以在几个小时或几天内处理图像积压工作,直到处理完所有未处理的图像。 有关计划语法的详细信息,请参阅计划索引器。
注意
如果将索引器设置为某个计划,但每次运行时一次又一次地在同一文档上反复失败,则索引器将以不那么频繁的时间间隔开始运行(最多每 24 小时至少一次),直到它成功地再次取得进展。 = 如果认为已修复导致索引器在某个点卡住的任何问题,则可以执行索引器的按需运行,如果该运行成功取得进展,则索引器将再次恢复为其已设置的计划间隔。
提示 6:提高索引编制吞吐量
对于并行索引编制,请将数据分配到多个容器中,或同一容器的多个虚拟文件夹中。 然后创建多个数据源和索引器对。 所有索引器都可使用同一技能组并写入同一目标搜索索引,因此你的搜索应用无需了解这种分区。