关于方法IndexBatch.New(actions)的排序

时间:2018-11-26 18:30:18

标签: azure-search

我对此处描述的有关索引批处理操作有疑问:https://docs.microsoft.com/en-us/azure/search/search-import-data-dotnet

在示例中为: Sample in the document

这3个项目是由酒店ID字段标识的不同文件。

我的问题是:

  • 如果数组中包含针对同一文档的多个操作(例如在示例中指定相同的酒店ID),将会发生什么?

  • 索引批处理操作如何处理针对同一文档的多个操作的排序?

  • 我了解要进行上传,因此有必要确保操作列表中有不同的文档ID,但这不适用于合并。

谢谢!

2 个答案:

答案 0 :(得分:0)

基于对您问题的理解,我想您想了解有关在同一文档上进行索引批处理操作的并发性的更多详细信息。根据我的经验,有一些想法可以分享给您,如下所示。

  1. Azure仅打开其针对不同服务的REST API文档以及针对不同编程语言的相关SDK来源,但是我们不直接了解这些服务的功能实现机制。
  2. Azure SDK几乎使用不同的编程语言包装Azure REST API。因此,我们可以通过研究REST API的使用来推测某种机制。
  3. 索引批处理操作基于REST API Add, Update or Delete Documents (Azure Search Service REST API),该API处理单个HTTP请求中描述的多个操作,这些操作一个接一个地执行。对于针对数组中包含的同一文档的多个操作,由于同步,单个请求中不会发生冲突。
  4. 如果同时对同一文档执行许多请求,则服务中定义了一些错误,这些错误将在REST API文档中引入,如下所示,并将执行必要的可重试操作。 enter image description here

希望有帮助。

答案 1 :(得分:0)

托尼

Azure Search不保证索引批处理操作中的操作顺序。它们都是独立执行的,因此可能会部分成功。请参阅this link,以获取有关从此操作中收到的响应代码的更多信息。我会避免在同一批处理中对同一文档进行多次操作。

马特