Azure Search索引器的速度有多快,我如何使索引更快?

3
每个索引批次限制为1到1000个文档。当我从本地计算机或Azure VM调用它时,每1000个文档批处理需要800毫秒至3000毫秒。如果我使用异步提交多个批次,花费的时间大致相同。这意味着对于我的约50M文档集合,需要15-20小时。
有没有办法让它更快?

似乎Azure已经达到容量上限了。尝试直接联系他们。希望一切顺利。 - Akshaya Shanbhogue
有没有办法让索引更快?如果没有达到容量,我应该得到什么样的性能? - Tony
@Akshay,“看起来Azure已经达到容量限制”是什么意思?OP没有遇到Azure服务超出容量限制的情况。 - David Makogon
2个回答

5
看起来您正在使用我们的标准S1搜索服务,虽然有很多因素会影响数据摄入速度。对于平均索引,我预计单个分区搜索服务的摄入速率约为每秒700个文档,所以我认为您的数字与我的预期相差不远,但请注意,这些仅是粗略估计,根据许多因素(例如字段数量、聚合量等),您可能会看到不同的结果。
可能您看到的额外时间中的一些原因是从本地机器上传内容到Azure的延迟,如果您直接从Azure上传,则可能会更快,但如果这只是一次性上传,则可能不值得努力。
您可以通过增加分区数和使用S2搜索服务轻微提高数据摄入速度。尽管这两者都需要付出代价。
顺便说一下,如果您有50M个文档,请确保分配足够的分区,因为单个S1分区可以处理15M个文档或25GB,因此您肯定需要额外的分区来处理此服务。
另外,当您上传内容时(特别是如果选择进行并行上传),请注意HTTP响应,因为如果搜索服务超出可用资源,您可能会收到HTTP 207(表示一个或多个项目未能应用)或503,表示整个批次由于限制而失败。如果发生限流,您需要稍微减少上传速度以让服务赶上。

谢谢!这正是我在寻找的信息!由于我有多个索引,现在我正在使用S1允许的所有分区。 - Tony

0

我们正在使用标准。我将联系支持部门。 - Tony
我曾经探索过使用DocumentDB或SQL Azure的选项,但问题在于我们现在正在使用每个字段的列文本文件。任何一种选项似乎都没有一个让我轻松更新索引的解决方案。 - Tony
如果您正在使用Blob,则另一个选项是将数据序列化为JSON - Azure Search具有解析JSON Blob的新功能。我们目前不支持解析CSV / TSV - 欢迎在UserVoice上添加建议(https://feedback.azure.com/forums/263029-azure-search)。 - Eugene Shvets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接