ElasticSearch,NEST,C#-如何设置rest_total_hits_as_int请求参数



我正在更新代码,以处理从ElasticSearch 6到7的更新。此版本更改了命中总数的工作方式(文档(。我刚开始使用这个库,很难理解如何使用NEST API将rest_total_hits_as_int设置为请求参数。

我看到selector参数有一个RequestConfiguration方法。但是,RequestConfigurationDescriptor类没有提及这个请求参数。

我在ElasticSearch.Net GitHub repo中搜索了PR中的rest_total_hits_as_intTotalHits(希望在添加了指定此请求参数的选项的地方找到提交(,但没有发现任何帮助。

有人能为如何在C#中设置此请求参数提供帮助吗?

它在NEST 7.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结构,以确定响应中返回的总命中率,但NEST7.x将JSON编号和JSON对象反序列化为相同的类型。NEST 7.x必须与Elasticsearch 7.x一起使用。

最新更新