elasticsearch 在嵌套桶上迭代,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 在嵌套桶上迭代,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 在嵌套桶上迭代

elasticsearch 在嵌套桶上迭代,elasticsearch,nest,elasticsearch,Nest,我正在尝试鸟巢,它看起来很不错,但我在理解一些东西时遇到了一些困难。 响应被序列化为对象的层次结构。我想对它进行迭代并创建自己的结构。 我可以做这样的事情(感谢@Martijn Laarman,他在GitHub页面上帮助了我): 这是可行的,但我希望有一个通用算法来解析响应。要做到这一点,我希望获得独立于查询的内容(如果它使用术语、范围等)。所以我想做一些事情,比如: var buckets = result.Aggregrations["level_1"]; var term = bucket

我正在尝试鸟巢,它看起来很不错,但我在理解一些东西时遇到了一些困难。 响应被序列化为对象的层次结构。我想对它进行迭代并创建自己的结构。 我可以做这样的事情(感谢@Martijn Laarman,他在GitHub页面上帮助了我):

这是可行的,但我希望有一个通用算法来解析响应。要做到这一点,我希望获得独立于查询的内容(如果它使用术语、范围等)。所以我想做一些事情,比如:

var buckets = result.Aggregrations["level_1"];
var term = buckets.Items[0].Aggreggation["level_2"];
不幸的是,Aggregations集合返回Nest.Bucket,我无法从那里执行任何操作。 是否有任何方法可以独立地迭代查询结果,以了解查询是如何形成的


谢谢

为了完整起见,我找不到任何方法。
我混合使用JObects和Dictionary创建了一个解析器,并对JSON响应进行操作,以生成我想要的输出。

您还可以在响应中的Aggregations对象上创建一个扩展方法,以按照您的意愿重新组合它。问题是Aggregations对象没有提供我可以使用的枚举器从事。Aggregations返回NEST.Bucket,但我无法获取此Bucket中的项目:(Oscar)你能在github上为此创建一个问题吗?可能需要一些思考如何公开一种方法来实现这一点,但如果可能的话,可能会非常有益。
var buckets = result.Aggregrations["level_1"];
var term = buckets.Items[0].Aggreggation["level_2"];