如何将rest#total#hits#设置为#int请求参数?

balp4ylt  于 2021-06-09  发布在  ElasticSearch
关注(0)|答案(1)|浏览(618)

我正在更新代码来处理从ElasticSearch6到7的更新。这个版本改变了点击总数的工作方式(文档)。我刚开始使用这个库,很难理解如何使用nestapi将rest\u total\u hits\u as\u int设置为请求参数。
我看到 selector 参数具有 RequestConfiguration 方法。但是,这个 RequestConfigurationDescriptor 类没有提到这个请求参数。
我在elasticsearch.net github repo中搜索了prs rest_total_hits_as_int 以及 TotalHits (希望找到一个commit,其中添加了指定这个请求参数的选项),但是我没有发现任何有用的东西。
是否有人可以帮助您在c#中设置此请求参数?

iibxawm4

iibxawm41#

它在Nest7.x的搜索api中提供

var client = new ElasticClient();

var response = client.Search<object>(s => s
    .TotalHitsAsInteger(true)
);

var client = new ElasticClient();
var request = new SearchRequest<object>()
{
    TotalHitsAsInteger = true
};

var response = client.Search<object>(request);

两者都产生

POST http://localhost:9200/<default_index>/_search?typed_keys=true&rest_total_hits_as_int=true 
{}

需要注意的是 rest_total_hits_as_int 对高级客户机来说并没有什么区别—它控制json结构以确定如何在响应中返回total hits,但是nest 7.x将json number和json对象反序列化为同一类型。nest 7.x必须与elasticsearch 7.x一起使用。

相关问题