繁体   English   中英

如何更改NEST(ElasticSearch)滚动请求的索引?

[英]How can I change the index of a NEST (ElasticSearch) scroll request?

对于每种文档类型,我们都有两个索引,即草稿索引和已发布索引。 通常,设置我们要使用的索引很容易,但是我看不到如何使用滚动API。

初始请求可以。

var query = new SearchDescriptor<MyDoc>()
            .Index(MyDoc.DraftIndexName) <-- we can switch them here
            // Or .Index(MyDoc.PublishedIndexName)
            .Size(pageSize)
            .Query(q =>
                 ...
            ))
            .Scroll("2m");

但是当我想获得下一页时

var request = new ScrollDescriptor<MyDoc>()
                .ScrollId(scrollId)
                .Scroll(new Time("2m"));
                // Nowhere to set the index


var scrollResponse = await client.ScrollAsync<EsPerson>(request);

我假设它将始终通过推断使用默认索引,即草稿。

滚动开始是通过对搜索API的请求而发起的,搜索API在响应中返回滚动ID。 之后,来自响应的滚动ID会传递给滚动API,以继续滚动所有文档,重复直到不再返回任何文档。 所有后续滚动API调用将使用初始API调用的配置,包括目标索引。

如果滚动被视为类似于服务器端游标,则初始请求定义了滚动参数,因此能够在mid-scroll中更改这些参数没有多大意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM