在 NEST 中更改 ElasticSearch track_total_hits

Change ElasticSearch track_total_hits in NEST

我 运行 想到了 ElasticSearch 的示例,并阅读 this link 说默认设置为 10,000,这也可以在搜索调用中更改,就像这个例子

GET twitter/_search
{
    "track_total_hits": 100,
     "query": {
        "match" : {
            "message" : "Elasticsearch"
        }
     }
}

问题是,我想在 NEST 上做同样的事情,但我没能复制它。我发现的唯一类似的东西,只接受布尔值而不是数字。是否可以通过 NEST 更改总数?

这是我试过的代码:

var results = elasticClient.Search<MyClass>(s => s
             .Query(q => q.QueryString(q2 => q2.Query(readLine)
             .Fields(f => f.Field(p => p.MyField)))).TrackTotalHits(true));

如@russcam here所述,目前您可以通过将 ISearchRequest 转换为 IRequest<SearchRequestParameters>:

var client = new ElasticClient();

var searchResponse = client.Search<Document>(s =>
{
    IRequest<SearchRequestParameters> request = s;
    request.RequestParameters.SetQueryString("track_total_hits", 1000);
    
    return s;
});

它将应用它作为查询字符串参数