Elasticsearch搜索查询以检索所有记录NEST

我在文件夹中的文档很少,我想检查此文件夹中的所有文档是否已编入索引。 为此,对于文件夹中的每个文档名称,我想为ES中索引的文档运行循环并进行比较。 所以我想要检索所有文件。

很少有其他可能重复的相同问题,例如检索(ElasticSearch)NEST查询中的所有记录并在 此处输入链接描述,但它们没有帮助我,因为文档已经从那时起改变了。(当前文档中没有关于扫描的内容)

我尝试使用client.search() 。 但根据文档,检索默认数量为10的结果。 我想在不提及记录大小的情况下获取所有记录? (因为索引的大小发生了变化)

或者是否可以先获取索引的大小,然后将此数字作为输入发送到大小以获取所有文档并循环?

这是我如何解决我的问题。 希望这可以帮助。 (参考文献https://www.elastic.co/guide/en/elasticsearch/client/net-api/1.x/scroll.html,https://www.elastic.co/guide/en/elasticsearch/reference/ current / search-request-scroll.html #roll-search-context )

 List indexedList = new List(); var scanResults = client.Search(s => s .From(0) .Size(2000) .MatchAll() .Fields(f=>f.Field(fi=>fi.propertyName)) //I used field to get only the value I needed rather than getting the whole document .SearchType(Elasticsearch.Net.SearchType.Scan) .Scroll("5m") ); var results = client.Scroll("10m", scanResults.ScrollId); while (results.Documents.Any()) { foreach(var doc in results.Fields) { indexedList.Add(doc.Value("propertyName")); } results = client.Scroll("10m", results.ScrollId); } 

编辑

 var response = client.Search(s => s .From(fromNum) .Size(PageSize) .Query(q => q ....