我想使用scrollid循环并滚动数据 我已升级到NEST 5.5并尝试修复此代码块:
scrollGetSearch = client.Raw.ScrollGet(scrollId, x => x
.AddQueryString("scroll", "1m")
.AddQueryString("size", "1000"));
尝试使用.Scroll
但无法找到滚动方法的正确参数:
scrollGetSearch = client.Scroll("1m",scrollId)
获取错误
方法的类型参数' Nest.ElasticClient.Scroll(Nest.Time, string,System.Func,Nest.IScrollRequest>)' 无法从使用中推断出来。尝试指定类型参数 明确。
答案 0 :(得分:1)
您的第一个请求使用低级客户端Elasticsearch.Net,而第二个请求使用高级客户端。
在NEST 5.x中执行相同的低级别请求
ElasticsearchResponse<T> lowLevelScrollResponse = client.LowLevel.ScrollGet<T>(x => x
.AddQueryString("scroll_id", scrollId)
.AddQueryString("scroll", "1m"));
通用参数T
应该是响应主体应被反序列化的类型,例如string
,byte[]
或者因为您正在使用高级客户端上公开的低级客户端,高级响应SearchResponse<TDocument>
,其中TDocument
是每个类型_source
应该被反序列化。由于在第一次滚动调用size
端点时配置了大小,因此无需在滚动请求中指定_search
。
使用高级客户端执行相同的搜索
ISearchResponse<T> scrollResponse = client.Scroll<T>("1m", scrollId);