本文包含一些提示,可帮助你开始使用 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小时。 如果技能集处理无法在该时间段内完成,您可以将索引器设置为每两小时定期运行,以便索引器能够从上次中断的位置继续处理。
计划的索引编制将从最后一个已知的良好文档处继续。 在周期性计划中,索引器可以在数小时或数天之内处理图像积压,直到所有未处理的图像都被处理完。 有关计划语法的详细信息,请参阅计划索引器。
注意
如果索引器被设置为特定的时间表,但每次运行时在同一文档上持续失败,则索引器的运行频率将降低为最多每 24 小时运行一次,直到它再次取得进展。 = 如果认为已修复导致索引器在某个点卡住的任何问题,则可以执行索引器的按需运行,如果该运行成功取得进展,则索引器将再次恢复为其已设置的计划间隔。
提示 6:提高索引编制吞吐量
对于并行索引编制,请将数据分配到多个容器中,或同一容器的多个虚拟文件夹中。 然后创建多个数据源和索引器对。 所有索引器都可使用同一技能组并写入同一目标搜索索引,因此你的搜索应用无需了解这种分区。