首页 / 问答 / [Elasticsearch].NET/.NET Core应用程序使用NEST如何从Elasticsearch(ES)中查询指定索引的所有文档呢?

[Elasticsearch].NET/.NET Core应用程序使用NEST如何从Elasticsearch(ES)中查询指定索引的所有文档呢?

0

使用Elasticsearch(ES)做全文检索是比较容易的事情,但Elasticsearch(ES)对于分页(特别是大数据量的分页)的支持不是很好。默认的分页是from().size()的方式,并且Elasticsearch(ES)的默认max_result_window=10000。也就是说默认只能从一个索引中取出前10000个文档,如果要将文档数大于10000的索引的数据全部取出来,则需要使用Elasticsearch(ES)提供的scroll功能来实现分页获取。

那么,在.NET/.NET Core应用程序中,使用NEST如何从Elasticsearch(ES)中查询指定索引的所有文档呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    在Elasticsearch NEST 5.5.0以上版本,提供了.ScrollAll()方法,可以利用此方法来读取指定索引的所有文档,示例如下:

    Rector的个人主页

    Rector

    2021-09-22 回答

    • 0

      在不支持.ScrollAll()的NEST版本中,获取指定索引的所有文档则需要循环调用.Scroll()方法,示例如下:

      Rector的个人主页

      Rector

      2021-09-22 回答

      • 0

        或者一个支持异步(async)的方法,示例如下:

        Rector的个人主页

        Rector

        2021-09-22 回答

        我来回答