【发布时间】:2018-02-13 10:44:44
【问题描述】:
我想使用 Nest 在 Elasticsearch 中查询超过一百万个文档。我的代码:
var response = client.Search<MyObject>(s => s
.Index("test")
.Type("one")
.Query(q => q.
Term(
t => t.name, "A"
)
)
.Size(10000)
.Scroll("10m")
.Pretty()
);
我的 MyObject 类:
public class MyObject
{
public int id { get; set; }
public int age { get; set; }
public string lastname { get; set; }
public string name { get; set; }
}
问题是当在前 10k 文档中没有找到此查询时,它不会继续搜索结果滚动 API 的其余部分。
我的问题是如何实现这一点(即在 Scroll API 中移动整个页面,尽管没有命中..)?
【问题讨论】:
-
var response = client.Search
(搜索字符串,新 SearchUrlParameters { Pretty = true });替换此查询 -
@silambarasanvediappan 你确定,默认弹性只启用 10000 个文档!
-
不,你定义的大小为10000,这是自定义
-
最大为 10K,所以我使用滚动 API 来处理每页 10k x 10k ...
-
哦!很好。这是因为词条查询找到了搜索字符串的确切词条
标签: c# elasticsearch nest