azure - Azure 搜索索引器的速度有多快以及如何更快地建立索引?

标签 azure search indexer azure-cognitive-search

每个索引批处理限制为 1 到 1000 个文档。当我从本地计算机或 azure VM 调用它时,每 1000 个文档批处理需要 800 毫秒到 3000 毫秒。如果我使用异步提交多个批处理,则花费的时间大致相同。这意味着我收集的约 5000 万文档需要 15 - 20 小时。

有什么办法可以让它更快吗?

最佳答案

您似乎正在使用我们的标准 S1 搜索服务,尽管有很多因素会影响数据摄取的速度。我预计单个分区搜索服务的平均索引速度约为每秒 700 个文档,因此我认为您的数字与我的预期相差不远,尽管请注意 这些纯粹是粗略的估计,您可能会根据许多因素(例如字段数量、构面数量等)看到不同的结果。

您看到的一些额外时间可能是由于将内容从本地计算机上传到 Azure 的延迟造成的,如果直接从 Azure 执行此操作可能会更快,但如果这只是一个一次性上传可能不值得付出努力。

您可以通过增加分区数量来稍微提高数据摄取速度,S2 搜索服务也会更快地摄取数据。尽管这两者都是有代价的。

顺便说一句,如果您有 50M 文档,请确保分配足够的分区,因为单个 S1 分区可以处理 15M 文档或 25GB,因此您肯定需要额外的分区来执行此服务。

另外,当您上传内容时(特别是如果您选择并行上传),请留意 HTTP 响应,因为如果搜索服务超出可用资源,您可能会收到 HTTP 207(表示一项或多项未能应用)或 503 指示整批由于限制而失败。如果发生限制,您可能需要稍微退后一些,让服务跟上。

关于azure - Azure 搜索索引器的速度有多快以及如何更快地建立索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341978/

相关文章:

c# - 在 VB.NET 中创建可从 C# 使用的索引器

azure - Jersey 客户端 1.17 PUT 请求返回错误 411。请求必须分块或具有内容长度

azure - 如何获取 ADLS Gen2 中存储的文件的 MD5?

c# - ASP.NET MVC4 : Filter search result in same view

Python:只有文件名(而不是路径)可用时如何在系统范围内搜索文件

C# 数组索引器

wpf - 如何将索引属性绑定(bind)到 WPF 中的控件

mysql - MVC5中如何提高写入数据库的性能?

entity-framework - 为什么 Azure 移动服务中的 CreatedAt 属性可以为 null?

javascript - 使用 Javascript 的简单搜索功能