问题描述
我正在将服务从 ES 5.0 升级到 6.8。我有一个在 v5 中序列化的存储桶聚合:
"items": [
{
"key": "random+topic","docCount": 27919,"aggregations": {
"ParentReference": {
"docCount": 24992,"aggregations": {
"Popularity": {
"value": 25223
}
}
}
}
},{
"key": "unkNown problem+latency","docCount": 24566,"aggregations": {
"ParentReference": {
"docCount": 23419,"aggregations": {
"Popularity": {
"value": 23931
}
}
}
}
},
使用 Elasticsearch.Net 和 nest 的 v6,序列化后,我最终得到:
"items": [
{
"ParentReference": {
"Popularity": {
"value": 25223
}
}
},{
"ParentReference": {
"Popularity": {
"value": 23931
}
}
},
我之前遇到过不再返回“聚合”属性的问题(尽管我希望有一个指向有关重大更改公告的指针),并相应地更新了我的代码。但是,如果没有 Key 和 docCount,我将无能为力。我想一定有一些与 Json 解析更改相关的东西。
我已经尝试过以下步骤: Custom Serialization | Elasticsearch.Net and NEST: the .NET clients [6.x] | Elastic
我尝试过使用默认序列化器,以及使用 JsonNetSerializer 的自定义序列化器。默认无效。
谁能就我应该做什么提出建议?
请注意,这是我获取 BucketAggregate 的方式:
var childAgg = response.Aggregations[ss.Type] as SingleBucketAggregate;
var nestedAgg = childAgg.Aggregations[ss.Path] as SingleBucketAggregate;
var countAgg = nestedAgg.Aggregations[sstermsName] as BucketAggregate;
return new ProviderResult<BucketAggregate>
{
Result = countAgg,};
谢谢! ~约翰
附加:
Elasticclient elasticclient_BuiltInSerializer = new Elasticclient(); var source = elasticclient_BuiltInSerializer.sourceSerializer.SerializetoString(o); var response = elasticclient_BuiltInSerializer.RequestResponseSerializer.SerializetoString(o);
ConnectionSettings connectionSettings = new ConnectionSettings(new SingleNodeConnectionPool(new Uri("http://fake")),JsonNetSerializer.Default);
Elasticclient elasticclient_JsonNetSerializer = new Elasticclient(connectionSettings);
var source2 = elasticclient_JsonNetSerializer.sourceSerializer.SerializetoString(o);
var response2 = elasticclient_JsonNetSerializer.RequestResponseSerializer.SerializetoString(o);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)