ElasticSearch 2.x版本(NEST C#)中的扫描和滚动替换



我已成功使用Elastic 1.x扫描并滚动NEST API,以获取与我的查询匹配的所有文档。开始了一个新项目,并认为我会使用最新的Elastic 2.x版本,但遇到了第一个障碍——如何返回所有匹配查询的文档(在c#中使用NEST)?

欢迎任何建议,感谢

Scroll在Elasticsearch 2.x 中

同步版本

var response = client.Search<object>(s => s
    // specify a scroll time of 2 minutes using string,
    // implicitly converts to Time type
    .Scroll("2m")
    .Sort(ss => ss
        // sorting on "_doc"
        .Ascending(SortSpecialField.DocumentIndexOrder)
    )
);

异步版本

var response = await client.SearchAsync<object>(s => s
    // specify a scroll time of 2 minutes using Time type
    .Scroll(new Time(2, Nest.TimeUnit.Minute))
    .Sort(ss => ss
         // sorting on "_doc"
        .Ascending(SortSpecialField.DocumentIndexOrder)
    )
);

有关Time装置的更多信息

我不是NEST用户,但在ES2.X中,扫描和滚动查询的方式发生了变化。现在,您可以使用基于_doc的简单排序查询进行扫描和滚动。请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html

curl -XGET 'localhost:9200/_search?scroll=1m' -d '
{
  "sort": [
    "_doc"
  ]
}
'

我希望我能帮上忙。