Json 订单号“, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux1232016-26-08T09:37:261OkValue 1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } }, { “_索引”:“ESB”, “_type”:“MDOrderFO”, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux4562016-26-08T09:37:272OkValue 1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } }, { “_索引”:“ESB”, “_type”:“MDOrderFO”, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux4562016-26-08T09:37:273okvalue1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } }, { “_索引”:“ESB”, “_type”:“MDOrderFO”, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux4562016-26-08T09:37:172okvalue1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } } ] } ] } } } }
我是ElasticSearch的新手,我花了一周的时间在这方面……而在这个时候,我甚至不知道这是否可行 我真的希望你能帮助我。 先谢谢你 当然,作为一个说法语的人,我为我的英语感到抱歉 编辑Json 订单号“, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux1232016-26-08T09:37:261OkValue 1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } }, { “_索引”:“ESB”, “_type”:“MDOrderFO”, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux4562016-26-08T09:37:272OkValue 1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } }, { “_索引”:“ESB”, “_type”:“MDOrderFO”, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux4562016-26-08T09:37:273okvalue1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } }, { “_索引”:“ESB”, “_type”:“MDOrderFO”, “_id”:“AVaxDzEGBclOg4W8YiW1”, "u分":8.823501,, “_来源”:{ “消息”:“MyFlux4562016-26-08T09:37:172okvalue1”, “时间戳”:“2016-08-22T07:02:57.085Z”, “记录器名称”:“MDOrderFOToFO” } } ] } ] } } } },json,xml,
elasticsearch,aggregate,Json,Xml,
elasticsearch,Aggregate,我是ElasticSearch的新手,我花了一周的时间在这方面……而在这个时候,我甚至不知道这是否可行 我真的希望你能帮助我。 先谢谢你 当然,作为一个说法语的人,我为我的英语感到抱歉 编辑 -不幸的是,我无法编辑映射。我无法访问将日志保存到E.S.的过程部分。 -事实上,我给出的格式经过了简单的简化,在映射级别和XML内容中记录了大量其他技术信息。 上下文:将日志推送到E.S.的总线应用程序有3个步骤(1:接收,2:路由,3:发送)。它记录有关请求状态(ok,fail)和此请求中正在传输的对象
-不幸的是,我无法编辑映射。我无法访问将日志保存到E.S.的过程部分。
-事实上,我给出的格式经过了简单的简化,在映射级别和XML内容中记录了大量其他技术信息。 上下文:将日志推送到E.S.的总线应用程序有3个步骤(1:接收,2:路由,3:发送)。它记录有关请求状态(ok,fail)和此请求中正在传输的对象的信息。 我正在使用的应用程序的目的是显示有关已传输的所有请求的业务信息,即日期范围的总线应用程序。
所以在我的查询中,我想:
1.按RequestId聚合我的日志(每个组在接收步骤应包含1个日志,在路由步骤应包含0或1个日志,在发送步骤应包含0或1个日志)
2.在接收步骤的日志日期筛选结果组
3.以按日期降序排列的前10个组为例,实现这一点的一种方法是修改数据库架构。由于xml架构是固定的,您可以将每个xml节点存储在单独的弹性字段中,而不是将整个xml存储在单个字段中。例如
flux
,requestId
,timeStamp
等将映射到单独的字段(可能具有相同的名称)在Elastic中。实现这一点的一种方法是修改数据库架构。由于xml架构是固定的,您可以将每个xml节点存储在Elastic中的单独字段中,而不是将整个xml存储在单个字段中。例如,flux
,requestId
,时间戳
等将映射到单独的字段(可能是同名的)弹性。 < P>我不确定你想在这里实现什么,所以我会尝试指出一些你可以考虑和/或尝试的事情:
在ES索引中存储数据的方式对查询不是很友好,无论您试图实现什么。
我建议打破XML
文档,将每个属性存储在单独的字段中,如下所示:
"_source" : {
"flux": "My Flux",
"requestId": 123,
"xml_timeStamp": "2016-26-08T09:37:17",
"step": 1,
"status": "ok",
"field1": "value1",
"timestamp" : "2016-08-22T07:02:57.085Z",
"logger_name" : "MDOrderFOToFO"
}
这种存储数据的方式意味着您只需要使用一个用于聚合的
为了实现这一点,您可能需要一种方法来打破XML
文档并将其映射到这个新的ElasticSearch映射
在本例中,聚合查询的外观类似于:
{
"aggs" : {
"myaggs" : {
"avg_price" : { "value_count" : { "field" : "requestId" } }
}
}
}
如果您不可能更新索引映射,我建议您查看并将其包含在聚合查询中
无论哪种方式,这些聚合都不会返回每个bucket中的文档。要返回Elasticsearch或任何其他类型的数据库中的所有文档都没有好的用例。这将是一个非常占用内存的操作,而且速度也很慢
如果您希望您的文档按<代码> RealEdvs<代码>返回,则考虑将索引映射更改为上面所建议的索引。然后使用它返回数据。
<>请告诉我这是否有帮助: < p>我不确定你想在这里实现什么,所以我会尝试指出一些你可以考虑和/或尝试的事情: 在ES索引中存储数据的方式对查询不是很友好,无论您试图实现什么。 我建议打破
XML
文档,将每个属性存储在单独的字段中,如下所示:
"_source" : {
"flux": "My Flux",
"requestId": 123,
"xml_timeStamp": "2016-26-08T09:37:17",
"step": 1,
"status": "ok",
"field1": "value1",
"timestamp" : "2016-08-22T07:02:57.085Z",
"logger_name" : "MDOrderFOToFO"
}
这个wa
"_source" : {
"flux": "My Flux",
"requestId": 123,
"xml_timeStamp": "2016-26-08T09:37:17",
"step": 1,
"status": "ok",
"field1": "value1",
"timestamp" : "2016-08-22T07:02:57.085Z",
"logger_name" : "MDOrderFOToFO"
}
{
"aggs" : {
"myaggs" : {
"avg_price" : { "value_count" : { "field" : "requestId" } }
}
}
}