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
Breaking changes in 5.0 ? Search and Query DSL changes
网上流传的老办法不行了。 实际上看,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>();
}
}
}
}
|