elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# 无需滚动即可获取文档属性值-弹性搜索下一步

C# 无需滚动即可获取文档属性值-弹性搜索下一步,c#,elasticsearch,nest,C#,elasticsearch,Nest,我用这种简化的结构为文档编制了索引: public class Document { public string Id { get; set; } public string x { get; set; } } 我正在这样搜索它们: var initialResponse = client.Search<Document>(s => s.From(0) .Size(100).Scroll(scrollTimeout) .Query(q =&g

我用这种简化的结构为文档编制了索引:

public class Document
{
    public string Id { get; set; }
    public string x { get; set; }

}
我正在这样搜索它们:

var initialResponse = client.Search<Document>(s => s.From(0)
    .Size(100).Scroll(scrollTimeout)
    .Query(q => q
        .MatchPhrase(c => c
            .Field(p => p.Attachment.Content)
            .Analyzer("standard")
            .Boost(1.1)
            .Query(searchTerm)
        ))); 
var initialResponse=client.Search(s=>s.From(0)
.Size(100).滚动(滚动超时)
.Query(q=>q
.MatchPhrase(c=>c
.Field(p=>p.Attachment.Content)
.分析仪(“标准”)
.Boost(1.1)
.Query(searchTerm)
))); 
然后循环浏览文档(更多代码)。这显然需要时间,我想知道,我是否可以在一个负载中获得所有ID或更好的匹配文档的x值


谢谢

Elasticsearch有一个默认值为10000的
索引.max\u result\u窗口设置


这是您可以在单个请求中检索的最大文档数。如果您想获得更多信息,您需要使用
滚动
API之后搜索,就像您已经做的那样。

谢谢。然而,一个聚合服务器端可以只获得聚合负载吗?@cs0815我相信你做不到。你必须在你的客户端完成。谢谢。哇,不知怎的,我看不出有什么意义。假设我只需要包含(模糊)术语的文档数量?在这种情况下,您可以发出一个查询,它会告诉您使用该术语找到的文档的确切数量。至于ES看不到点,ES作为搜索引擎被优化为返回top-k文档,因此限制:)