var settings = new ConnectionSettings(Constants.ElasticSearch.Node);
var client = new ElasticClient(settings);
var response = client.Search<DtoTypes.Customer.SearchResult>(s =>
s.From(0)
.Size(100000)
.Query(q => q.MatchAll()));当大小较小时,它可以工作,但我希望检索具有超过100 k文档的索引中的所有文档。必须是一个配置设置,我错过了绕过一个限制。我也尝试过Take()而不是Size()
返回的调试信息是
“从POST上一个不成功的低级别调用生成的无效嵌套响应:此API调用的/_search\r\n#审核跟踪:\r- BadResponse:节点:http://127.0.0.1:9200/接受: 00:00:00.2964038\r\n# ServerError: ServerError: 500 The : search_phase_execution_exception原因:\”所有碎片失败\“\r\n# OriginalException: System.Net.WebException:远程服务器返回一个错误:(500)内部服务器错误。\r\n在系统上。”Elasticsearch.Net.HttpConnection.RequestTReturn in C:\users\russ\source\elasticsearch-net\src\Elasticsearch.Net\Connection\HttpConnection.cs:line 138\r\n# Request:\r\n\r\n#响应:\r\n\r\n“
发布于 2016-03-30 14:27:32
Elasticsearch允许返回的结果数量有一个软限制。如果你想一次得到超过10.000的结果,你应该使用扫描和滚动功能:)
来自Elasticsearch文档:
“请注意,from + size不能超过默认为10,000的index.max_result_window索引设置。请参阅scrolling以获得更有效的深度滚动方法。”
参考资料:
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html https://nest.azurewebsites.net/nest/search/scroll.html
https://stackoverflow.com/questions/36311378
复制相似问题