我需要通过rest API从OpenSearch在Azure数据工厂复制活动上实现滚动API(https://opensearch.org/docs/2.0/opensearch/search/paginate/)。
Scroll API 可用于迭代与查询匹配的大量 OpenSearch 文档,甚至所有匹配文档。
这是一个例子(curl):
GET products/_search?scroll=1m
{"size": 10 }
GET _search/scroll
{"scroll_id":"FGluY2x1ZGVfY29udGV4dF91dWlkDXF1ZXJ5QW5kRmV0Y2gBFlViblo1YXZTU2pxYkl1eE9zV3JLaEEAAAAAAAAAChZLem1HOElfcVRkT2JoZWljcnlWaFN3" }
我在 ADF 复制活动分页规则方面遇到了麻烦。请帮忙。
我尝试首先捕获scroll_id作为第一次调用的输出,并将其存储到变量中。但我不知道如何在复制活动的分页规则(下一个请求)中使用该变量来复制 OpenSearch Index json 响应。
谢谢
根据文档
ADF 中的分页支持
的情况。Next request’s header = property value in current response body
您的场景与此相同,当前页面给出
_scroll_id
的值,该值应用作下一页标题 scroll_id
。
因此,您可以在复制活动源中尝试如下分页规则。
在 REST API 的 URL 中,提供您的
_search/scroll
URL,并在复制活动的源中,创建标头 scroll_id
并为其提供变量,其中存储了来自 Web 活动的第一个 _scroll_id
。
在分页规则中,给出标题名称并提供正文属性
_scroll_id
,如下所示。
您可以查看@Matt 的类似SO 答案。另外,请检查相同的文档以了解分页的结束条件。
在这种情况下,您还可以使用直到活动尝试循环方法。