.NET5(C#) ElasticSearch7 Scroll示例

search_type=scan removed
The scan search type was deprecated since version 2.1.0 and is now removed. All benefits from this search type can now be achieved by doing a scroll request that sorts documents in _doc order, for instance:

网上流传的老办法不行了。
实际上看,sort不用_doc也OK

代码

using Nest;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;

namespace ESScrollReader
{
    class Program
    {

        public static readonly string url = "http://192.168.0.1:9200/";
        static void Main(string[] args)
        {
            ScrollSearch("test_index");
        }
        public static void ScrollSearch(string index)
        {
            var settings = new ConnectionSettings(new Uri(url)).DefaultIndex(index);
            var client = new ElasticClient(settings);
            var searchResponse = client.Search<dynamic>(s => s.Sort(sort => sort.Descending("time")).Size(10000).Scroll("1s"));
            
            while (searchResponse.Documents.Any())
            {
                searchResponse = client.Scroll<dynamic>("1s", searchResponse.ScrollId);
                var d = (Dictionary<string, object>)searchResponse.Documents.First<dynamic>();
                //Do sth.
            }
        }
    }
}

上一篇:.NET5 MVC Program.cs 笔记


下一篇:net5输出的网页源码乱码问题解决