Kibana: 嵌套字段支持

创建于 2014-03-21  ·  364评论  ·  资料来源: elastic/kibana

这是我搜索过的其他一些问题的重复,但我没有看到讨论过这个特定方面,所以我认为这值得一个单独的问题。

您阅读了 _mapping 字段,因此您应该知道何时嵌套特定字段,因此当在查询或构面中选择此类字段时,它是否不能自动应用正确的嵌套构面/查询?

(或者/另外,正如#532 所建议的,您可以有一个复选框以允许用户自己选择它,也许作为临时措施)

我确信在某些情况下这会变得复杂,但也有很多情况是将一个 JSON 块直接更改为另一个块。

Aggregations New Field Type AppServices high hanging fruit enhancement

最有用的评论

嵌套字段支持阶段 1 在 7.6.0 中发布

此问题的一个小更新:我们刚刚发布了 Kibana 7.6.0,它最初支持其中的嵌套字段。 您现在可以在 Kibana 的以下位置使用嵌套字段:

  • 索引模式将正确检测嵌套字段
  • 您将能够在 Discover 中观看 Nested Fields
  • 通过过滤器栏过滤嵌套字段有效
  • KQL 允许搜索嵌套字段(有关查询嵌套字段的语法的解释,请参阅KQL 文档

我们目前正致力于在可视化中启用嵌套字段,我们将继续使用相关信息更新此问题。

所有364条评论

+1 用于嵌套对象聚合。

+1

+1

+1

+1

+1

+1

+1

+1

+1

+100000

+1

需要明确的是,现在无法在 kibana 4 中进行嵌套过滤器/查询/agg,是吗?

+1

+11111

+1

+1

+1

+1

+1

+1

+1

+2

+1

+1 因为非规范化嵌套对象并不总是一种选择,因为这可能会导致映射爆炸。

映射:

{ 
 "timestamp":{ "type":"date"},
 "cluster_id": { "type":"string"},
 "pools":{
    "type":"nested",
    "properties":{
      "size":{
        "type":"long"
      },
      "name":{
        "type":"string",
        "index":"not_analyzed"
      }
    }
  }
}

首先,我希望折线图能够显示每个池名称随时间的平均大小。 假设有很多名称,因此非规范化不是一个好主意,这可能会导致图表中有很多图形。 为了处理这种情况,能够在嵌套聚合中使用过滤器聚合也将是有益的。 能够过滤顶部搜索中的嵌套字段也很棒。

为了让事情变得更加有趣,能够将这样的聚合可视化真的很棒:

"aggs": {
        "poolagg": {
            "nested": {
                "path": "pools"
            },
            "aggs": {
                "old": {
                    "filter": {
                        "term": {
                            "name": "some pool name"
                        }
                    },
                    "aggs": {
                        "avg_size": {
                            "avg": {
                                "field": "size"
                            }
                        },
                        "distribution": {
                            "histogram": {
                                "field": "size",
                                "interval": 5
                            },
                            "aggs": {
                                "pool_to_cluster": {
                                    "reverse_nested": {},
                                    "aggs": {
                                        "clusters": {
                                            "cardinality": {
                                                "field": "cluster_id"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

+1

+2

+1

+1

+1

+1

+10!

有了这个会很强大!

有人可以澄清这一点吗? 在这篇关于 Kibana4beta1 的帖子 (https://www.elastic.co/blog/kibana-4-beta-1-released) 中,它指出“Kibana 4 将 Elasticsearch 嵌套聚合的强大功能带到了鼠标点击中。”然而我无法在带有嵌套对象的文档上创建任何可视化。 我还确保索引模板中的嵌套对象被标记为“嵌套”。 那么 Kibana 对嵌套聚合的支持与 ES 对嵌套对象的支持不同吗? 我错过了什么? 谢谢。

@cslinuxboy - 我认为他们在这里使用“嵌套”来指代通过多个字段进行分组,例如“按时间聚合然后按地理”(不是“嵌套”,因为它在平台中用于“嵌套对象”)

@Alex-Ikanow - 感谢您的回复。 可惜这在这个时候是不可能的。 在阅读他们的 beta-1 帖子中的误导性描述时,我充满了希望。

+1 支持可视化聚合中的嵌套对象。

+1

我目前正在使用父/子关系作为一种解决方法,这似乎工作正常。

@calvdee你有 has_parent 或 has_child 查询可以在 Kibana 搜索栏中工作吗? 这对我们不起作用,这是一个大问题,如果你有这个工作并且可以让我知道,我将永远感激......谢谢!!!

不,对于我们的用例,所有父母都有孩子,并且所有孩子都必须有父母,因为我们正在索引发票数据,所以常规查询才有效(见图)。

image

@calvdee 非常感谢您的回复! 我们有一个类似的数据模型,但希望能够在 Kibana 中找到孩子的父母,它不起作用:0(

不客气,祝你好运!

在星期四,2015年3月26日,11:36 ajrasch [email protected]写道:

@calvdee https://github.com/calvdee 非常感谢您的回复! 我们
有一个相似的数据模型,但希望能够通过他们的父母找到他们
Kibana 的孩子们,它不起作用 :0(


直接回复此邮件或在 GitHub 上查看
https://github.com/elastic/kibana/issues/1084#issuecomment -86575796。

+1

+1

您阅读了 _mapping 字段,因此您应该知道何时嵌套特定字段,因此当在查询或构面中选择此类字段时,它是否不能自动应用正确的嵌套构面/查询?

是的,:+1:关于这个。 尽管我设法在 CLI 上编写了正确的嵌套聚合,并且可以使用 curl 提取数据,但我还没有找到让它在 Kibana 的“可视化”选项卡中工作的方法,甚至没有使用 JSON 编辑框。 诚然,我从不使用该功能(框),但似乎只能将内容“添加”到现有聚合中,而不是使用它从头开始创建新聚合......(希望得到更正如果我错了!)。

是的,嵌套类型聚合是关键并得到更广泛的使用,因为它们解决了平面数据的特定问题。

如果 Kibana4 是 ES 的可视化产品,它应该支持所有 ES 聚合。

至少在Kibana4

+1

+1

+1

+1

+1

来自#3729 :-)

我想看到一个聚合选项“子文档”
(在日期直方图、直方图等之后)打开了
用于子项聚合的查询 DSL 的参数,例如
“子类型”、“字段”等。

这将允许在子级上创建嵌套聚合
文件。

我似乎无法使用创建这样的查询
高级编辑功能。 可能有人可以
开导我。

谢谢

+1

+1

+1

+1 真的需要这个能力。 我可以使用 logstash 去掉所有父项作为解决方法,但这需要一个巨大的配置文件,因为我有数百个字段。

kibanafields

+1 有谁知道这是否有计划?

+1

现在,我正在考虑更改我的一些映射以停止使用“嵌套”类型对象,因为我无法在任何这些字段上创建 Kibana 可视化。 如果我知道这个问题至少在路线图上,那对做出这个决定会有很大帮助。

@benjismith - 我也咬紧牙关,将我的数据处理从嵌套切换到父/子文档。 到目前为止,它运行良好,但我同意你的看法; 很高兴知道这是否有可能成为 Kibana 中的一项功能,因此我们所有人都可以等待它或继续前进。

祝你好运。

+1

+1

+1 嵌套类型聚合支持

+1

+1

+1

+1

+1

+1

对于那些希望对嵌套文档中的特定字段进行简单聚合的人(例如,对字段进行“terms”聚合以查找最高值),您可以考虑将“include_in_parent”设置添加到您的 Elasticsearch 映射中。 这会在父级别的嵌套文档中创建一个字段的扁平版本。

https://www.elastic.co/guide/en/elasticsearch/reference/1.7/mapping-nested-type.html
screen shot 2015-06-15 at 10 38 53 am

这些字段不会显示在左侧的“发现”字段列表中,但您会在文档详细信息视图中看到它们作为数组字段。 但是,您可以访问 Visualize 中指标列表中的各个字段,并且可以对它们运行聚合。

这是我们正在做的可视化观看历史记录,它基于嵌套的文档结构(请参阅“results.actions”):

{
   ".watch_history-2015.06.12": {
      "mappings": {
         "watch_record": {
            "dynamic": "strict",
               "result": {
                  "dynamic": "true",
                  "properties": {
                     "actions": {
                        "type": "nested",
                        "include_in_parent": true,
                         …
}

screen shot 2015-06-15 at 11 01 12 am

screen shot 2015-06-15 at 10 52 35 am

screen shot 2015-06-15 at 11 09 26 am

+1

+1

+1

+1

+1

而不是另一个+1......也许嵌套类型聚合所在位置的摘要会有所帮助。

我学习如何制作漂亮的图表 5 天,所以如果有任何明显的问题,请原谅我。

有什么问题?

它仍然是 ElasticSearch 或 Lucene 查询问题吗?

它不是通过聚合解决的,而是通过我们允许您在输入框中键入 elasticsearch JSON 来解决的。 这并不理想,但除非 elasticsearch 扩展 lucene 查询字符串语法来指定嵌套字段,否则这是我们能做的最好的事情。 --rashidkpc 的一年前评论

Kibana 修复可能吗?

如果是 ES/Lucene,Kibana 能否同时提供一个中间的 hack/解决方案? 想想 ES6 垫片和供应商前缀 CSS。

对于嵌套映射:有机会在编辑器中为 Kibana 面板选择嵌套(并配置路径...)。 炸弹客

或者:

您阅读了 _mapping 字段,因此您应该知道何时嵌套特定字段,因此当在查询或构面中选择此类字段时,它是否不能自动应用正确的嵌套构面/查询?
亚历克斯-伊卡诺,OP

有人在破解解决方案吗? 任何有想法/方向的人在哪里破解?

变通?

有没有人在nested/include_in_parent 方面取得过任何成功? 它是否需要dynamic: staticdynamic: true 。 我的尝试失败,结果为 0。 布拉金

任何人都有上面rashidkpc提到的JSON输入框的例子吗?

父母/孩子

这是我的下一步。 我确信网上有很多关于此的参考资料,但参考此替代方案的示例/教程不会有什么坏处。

由于缺乏对 kibana 内部结构的了解,我正在考虑编写一个位于弹性和 kibana 之间的 REST 代理。 在给定一些基于术语的搜索条件的情况下从 Kibana 查询特定类型时,此代理首先查询父类型以查找满足搜索条件的父类型(它们适合记忆)。 然后它会找到这些父母的所有孩子,并将这些孩子返回到 kibana 非规范化并添加所有父字段。 这将允许我们在 Elastic Search 中拥有一个父子模型,避免存储爆炸,将所有内容非规范化为数十亿个子对象,同时基于父字段绘制数据。

理想情况下,这是 Kibana 的一部分。 世界并不平坦!

+1

+1。 我们曾经将函数堆栈或 url_args 拆分为不同的字段。 但这伴随着过大的集群状态和过多的映射刷新操作。 所以我们把它改成一个嵌套对象。 现在,我们需要 K4 中的 aggs ....

+1

+1 需要父子聚合可视化。

+1

请不要相信所有希望使用 Kibana 的 Elastic 用户都在使用它进行日志分析。 我们在集群中填充了大量带有嵌套对象的数据,我们希望能够对其进行分析,而无需将数据提取并转换到另一个系统中。

必须能够创建嵌套聚合、嵌套查询,甚至 reverse_nested 聚合。 Kibana 没有此功能的时间越长,我们就必须越早找到不使用 Elastic/Kibana 的替代方案。 如果为此类功能提供易于使用的 UI 是困难的部分,请首先为您的用户提供能力,为返回所需数据的 elastic 提供完整的 json 查询。

+1

同意@ppadovani 。 我们正在评估 BI 工具并且很想使用 Kibana,但它不支持我们需要报告的业务实体中的关系,并且对非技术用户来说不够友好,无法进行探索。 我们最终选择了 Looker(本质上是 SQL 的 GUI)。 查看 looker 可能会提供一些关于如何扩展 kibana 以在未来服务更多不同用例的想法。

我决定查看 kibana 4.1 代码..(我不能使用 master,因为它只适用于 2.x elastic).. 如果我错了,请纠正我,但这似乎是做一些事情的简单第一步这些行:

1) 在聚合的“高级”可折叠区域下,添加一个名为“嵌套路径”之类的文本字段。
2)如果用户在该字段中放置一个字符串,则设置的聚合将具有如下所示的嵌套聚合:
“阿格斯”:{
“2”:{
"嵌套":{ "路径":"foo" },
“阿格斯”:{
“3”:{
“日期直方图”:{

要处理多级嵌套对象的情况,您可以添加一个 + 以允许用户添加其他嵌套路径。 此外,要处理反向嵌套,只需添加一个标记为“反向”的复选框。

这至少会提供有限的“嵌套”聚合支持。

对于嵌套查询支持,我能想到的短期唯一解决方案是允许用户输入手动编码的弹性搜索 json。

+1

+1 所有这些并允许用户输入硬编码的弹性搜索 json

+1

+1

+1。 我对使用 Kibana 满足我们的环境可视化需求感到非常兴奋,但是如果不支持嵌套对象可视化,那么将 Kibana 用于我们的目的是非常痛苦的。

+1,刚遇到这个。

+1

+1

+1

+1

+1

至少有 82 人得到您的“+1”,这没有帮助。

stop

我强烈反对。 更多的数据永远不会坏。

我和我的团队正在为此努力,并希望在本周末之前可以展示一些东西。

编辑:请参阅我的评论: https :

+1

+1

+1

完成并在此处创建拉取请求:
https://github.com/elastic/kibana/pull/4806

正在观看的人的快速更新...等待 Elasticsearch 公司。 确认CLA,否则我认为最好去。

+1

+1也是

+1

+1

+1

+1

+1

+1

+10

+1

+1

+1

+1

是的,请。

+1

+1

+1

+1

针对 4.1 的拉取请求已关闭,以支持针对 master 的拉取请求。

https://github.com/elastic/kibana/pull/5411

如果需要 4.1 版本,我可以使用正确的代码重新打开拉取请求。

+1

+1

+1

+1

我不明白是什么阻碍了这个问题。
有一个拉取请求等待https://github.com/elastic/kibana/pull/5411

这里有人愿意做出贡献。 合并这个 PR 需要做什么?

肯定需要更多+1

@Filirom1我们中的一些人一直在路上,所以我们还没有机会审查 PR :( 我们将在本周努力实现它。这绝对是一个急需的增强功能,我们非常兴奋关于社区贡献在这里!

伟大的 :-)
谢谢 !

我查看了#5411,不幸的是,这不是我们现在希望采用的方向。 #5411 实现了止损,但导致过滤和搜索等重要功能中断。 它还导致 agg 构建器本身对于那些不了解嵌套聚合的底层实现的人来说似乎已损坏。 在我们坐下来仔细研究之后,我们意识到以内聚方式支持嵌套文档的工作量非常大。

不是我们不想这样做,而是如果我们这样做,我们想正确地做,而不仅仅是解决它。

我们认识到许多人对可视化关系数据感兴趣,但是考虑到其他优先事项和担忧,我们目前没有专门用于该项目的资源,并且无法承诺在可预见的未来将其添加到路线图中。

仅供参考,我们希望使用带有嵌套聚合的 kibana 进行内部分析,但最终选择了直接位于我们的 rdbms 上的商业产品“Looker”。 我强烈建议 Elastic 开发人员看看他们为简化关系模型探索所做的工作,因为许多非技术人员现在可以浏览我们的实时数据库,了解他们对产品的日常问题。 我评估了许多产品,Looker 名列前茅,我希望有朝一日在 Kibana 中看到类似的功能。

鉴于 Rashid 的最新评论以及对该功能的广泛等待,我建议关闭此问题。 如果这个问题仍然存在,那么它只会给用户虚假的希望,即在不久的将来有可能实现这一点。 让我们关闭它并将这个想法固定下来,直到开发人员有资源来弄清楚如何实现它。

从拉取请求中复制我的帖子:

这里有一个解决方案,但它需要大量的工作,而我只是没有时间。 我们在 JAVA 中实现了这个,所以我知道这是可能的。

1)每个索引映射都需要拉取和理解嵌套字段。
2) 构建一个提供简化查询语言的自定义 AST,而不是尝试只使用 Elasticsearch。
3) 构建一个理解 AST 的查询适配器,可以验证查询并将其转换为正确的 JSON。
4)根据对嵌套字段的内部理解,更新 Kibana 中的聚合以正确处理嵌套字段。

这不是不可能做到的,只是需要大量的工作。 实现上述的好处包括查询验证和简化的语法。 例如,我们的 AST 允许我们创建这样的查询:

(owner.user = "/users/00a0/18066271-29f0-40af-83ad-e5a0c8fc5944") AND (druid = "/druids/0060/77dd14b1-b7f0-4851-9ef8-74d.4da18" AND (druid)插入 >= 0) OR (conversationLifecycleState = "RESERVATION_REQUEST")) AND (owner.conversationArchived = false) AND ((units.site IS NULL) OR (units.site IN {"HOMEAWAY_DE"})) AND ((inquiry.inserted >= 0) OR NOT (reservation.availabilityStatus = "DELETE")) AND NOT (owner.markedSpam = true) AND (lastMessage.inserted >= 0)

我究竟如何使用现有语言进行此查询?

恕我直言 - 在采取行动之前等待 Elasticsearch 的必杀技将导致 Kibana 的采用率下降和用户流失。

讨厌听起来像我在做营销,但这是相关的。 (看到有人提到其他产品..)

我们发现很多使用大量嵌套的 ppl 想要实际搜索关系数据并最终嵌套记录,而这些记录应该只是“加入”晚了。 (Padovani,这可能是你的情况,我看到“用户”“消息”等。这些会很好地作为单独的记录保存)
这就是我们创建 SIREn Join elasticsearch 插件和 Kibi our -friendly - Kibana fork 的原因,它为此提供过滤器和功能。

我们现在正在努力将 Kibi 尽可能多地融入 Kibana 4.4(又名 5.0)兼容插件中,以造福所有人。

Join 插件已于昨天发布,它也是开源的。

与此同时,可用版本http://siren.solutions/kibi坦率地说就像一个魅力,我们的许多客户不再需要嵌套数据。

jccq:从来不知道 Kibi 或 join 插件。 谢谢(你的)信息!

+1

+1
这是一个必须有的问题...

@jccq我们的用例不仅仅是为了查询加入,我们使用“加入”实体或“视图”,因为我们称之为具有自己生命周期的真实实体数据。 这允许客户端提取连接的数据,而无需对我们的 API 进行多次 GET 调用。

就 Kibana 中的嵌套支持而言,我们正在改进我们的方法,可能会在第二季度或更早的某个时候根据资源和时间与社区分享一些东西。 这种新方法将支持在聚合和查询中无缝嵌套。 我不会多说,因为它仍处于实施的早期阶段。

+1

@ppadovani你就是那个!

+1

+1

+1
这对我们来说真的很重要。
我们为这个功能等待了将近一年......

+1

更新:由于我的工作量,我的新分支至少有一个月没有准备好进行初步反馈或测试。 但是,我想提出我正在做的事情,以便在我前进的过程中收集来自社区的任何反馈。

基本设计围绕两件事:

1) Kibana 自由格式查询字段的新查询解析器。 这个解析器使用标准的 Bison 语法定义(请参阅 Jison 项目以了解我正在使用的 javascript 版本)。 我使用的 BNF 基于我们在 Homeaway 使用的现有 BNF,用于针对 Elasticsearch 的自定义查询语言。 以我上面的评论为例。 我选择这种方法是为了让社区将来根据需要进行改进。

我有在 Kibana 中工作的查询解析器,但仍有工作要做,以允许用户在 Kibana 使用的现有查询样式和这种新样式之间切换。:
image

2) 将 mapper.js 中的 getFieldMapping 调用更改为 getMapping 并以不同方式处理结果,以便捕获字段上的嵌套路径并将其添加到 Kibana 存储的字段信息中。

当在解析器中键入查询时,将验证不仅字段名称正确,而且提供的值对字段类型有效。 即日期字段获取日期,或者布尔值被赋予布尔值。 此外,嵌套字段将由解析器自动处理,并且将生成正确的 Elasticsearch 查询 json,而不是现在使用的简单查询语言。

最后,对于聚合,由于字段现在包含有关嵌套路径的线索,因此根据所选字段根据需要自动注入嵌套聚合对于我之前的分支来说是微不足道的。

里程碑:
1 - 获取解析器功能,并生成查询
2 - 更新 mapper.js,并实现嵌套查询支持
3 - 实现嵌套聚合支持
4 - 测试/清理

对这种方法的任何反馈将不胜感激。 谢谢!

更新上述内容:

  • 解析器完成
  • 反向解析器完成(采用 elasticsearch json 并将其转换回自定义查询语言)
  • Kibana 现在找出并保存字段上的嵌套路径
  • 解析器现在可以访问字段信息

仍待办:

  • 两个解析器中的嵌套路径支持
  • UI 构造允许用户切换应使用哪种查询样式,并允许保存/使用旧查询。
  • 完成解析器中的错误处理,以及 UI 如何显示解析问题/错误
  • 为查询中的字段名称提供预先输入支持的 UI 构造
  • 存储桶/指标中的嵌套支持
  • 单元测试,单元测试,单元测试。
  • ……?

+1

更新:

  • 解析器自动处理/注入嵌套信息
  • 聚合现在自动处理/注入嵌套信息

去做:

  • 查询样式选择的 UI 更改,以及使用 kibana 索引中的查询保存样式选择。
  • 解析器错误的错误处理,以及 UI 如何显示解析问题/错误
  • UI 类型提前支持查询构建/编写
  • 单元测试,单元测试,单元测试……

计划:
我想至少在 UI 工作上取得一些进展,而不是我的强项,然后我们会将分支/分叉推送到 HomeAway github 存储库以允许反馈/贡献。 完成后我会再次在这里发布,以便你们中的任何一个想要拉动叉子并玩它的人都非常欢迎。 一旦它足够完善,我将创建官方拉取请求。

最后一点:这项工作是针对 Kibana 4.3.1 分支完成的。

作为我之前关于使用“include_in_parent”和“include_in_root”将选定字段从嵌套文档复制到顶层以便对它们运行聚合的评论的后续,在 ES 2.0 中引入了“copy_to”功能,该功能提供了另一个这类事情的选项: https :
有一些关于在未来的 ES 版本中弃用“include_in_parent”和“include_in_root”而支持“copy_to”的讨论: https :

+1

ppadovani,感谢您正在尝试做的事情。 此功能对我们非常重要
几个问题:

  1. 我明白这需要时间吗? 是否有此功能可用的估计时间?
  2. 有没有人尝试过任何替代方法? 就像将日志格式从嵌套的 json(arrays) 更改为其他格式一样? 如果是这样,与 ELK 一起工作的预期格式应该是什么?
  3. 市场上是否有其他产品可以帮助实现此功能? 我完全支持 ELK,因为它是开源的,但在它不是之前,我们想要比 Splunk 更便宜的东西。 我们探索了许多选项,例如 Loggly、sumologic、logentries、logscape、graylog(要么像 splunk 一样昂贵,要么没有此功能)

非常感谢!

  1. 有没有人尝试过任何替代方法? 就像将日志格式从嵌套的 json(arrays) 更改为其他格式一样? 如果是这样,与 ELK 一起工作的预期格式应该是什么?

您可以展平架构或使用 ES 映射选项“include_in_parent”或“copy_to”将某些字段从嵌套文档复制到父文档。 不适用于所有用例,但在某些情况下,这将允许您开箱即用地使用 Kibana。 我们在 Elastic 内部使用“include_in_parent”方法。

  1. 我有一个“有效”的分支,但需要更多的 UI 工作形式的 TLC。 这不是我的主要工作,所以我只能在有时间的情况下工作。
  2. 正如@tbragin 所指出的,您可以展平数据。 但是,这可能会导致无效的查询结果。
  3. 我目前不知道有任何替代方案。

为了更清楚地了解查询语言是什么样的,因为我在旧的拉取请求中被问到,这里是一个 BNF 摘要:

比较:字段 [=,<,>,<=,>=,~=] 值
注意 ~= .. 这表示 LIKE 反过来会导致通配符查询
IN: 字段 IN {value,value,...} 设置操作
field IN [value,value] 范围操作使用 [ ] 或 ( ) 取决于包含/不包含
IS:字段为空
表达式:IS | 在 | 比较
NOT:非表达式
和 | 或:表达式AND |
EXISTS:存在表达式
Exists 是嵌套的作用域发生的方式。 通常,如果不使用 EXISTS,所有相邻且具有相同嵌套路径的表达式将组合到相同的嵌套查询中。 但是,您可以通过使用 EXISTS 来划分嵌套查询块,以将特定嵌套查询的范围从彼此中分离出来。

如前所述,该语言使用 JISON 与 javascript BISON 等价物,并且允许我们根据需要轻松扩展该语言。

更新:

我相信我即将能够与所有人共享一个分支以进行测试并提供反馈。 我有解析器工作,至少语法反馈工作以及针对解析器的单元测试。 一些截图:

image
image
image

我希望我能在本周晚些时候准备好分支。 准备好后,我将链接到此处的博客文章,该文章将链接到该分支,并对语法、用法等进行全面概述。我的计划是收集有关该分支的反馈,修复问题,根据要求进行改进,然后获取提交的拉取请求。

我想测试它(这是我们在 K3 https://discuss.elastic.co/t/nested-aggregation-charts/41523 中使用嵌套聚合的示例,没有它就不会迁移)。

@Robitx我认为这不是问题……我们的文档至少有两层嵌套对象……例如:

A->B->C

其中单个 A 文档可能有一个或多个 B,并且每个文档都包含 B 上的 C 列表。每个嵌套文档都有多个不同类型的字段。 我已经测试了这段代码,以便我可以针对最内部的嵌套数据构建直方图或多层饼图。

需要明确的是,我们的映射是从我们的 pojo 自动生成的,并且可能变得非常复杂。

+1

更新:

我想让人们开始玩这个,而不是等待我的官方博客文章出现。

叉/分支可以在这里找到:

https://github.com/homeaway/kibana/tree/fullNestedSupport

自述文件:

https://github.com/homeaway/kibana/blob/fullNestedSupport/NESTED_README.md

README 的内容本质上是将在某个时候出现的博客文章的内容。

如果您愿意,请随时针对 fullNestedSupport 分支打开问题/拉取请求。 我会尽量关注人们发现的任何问题。

+10000

+100500

+100

嗨,帕帕多瓦尼,

你能不能给点建议,我该怎么办

此字段存在于您的 elasticsearch 映射中,但不存在于搜索结果中的任何文档中。 您仍然可以对其进行可视化或搜索。

非常感谢!

嗨,帕帕多瓦尼,

我们有一个字段作为嵌套数组。
"abc":[["3815222235847451","131712121218083052"]]
或者
"abc":[["3815222235847451","131712121218083052","131712121217783052"]]]
或者
“abc”:[[“3815222235847451”]]

值可以是任何 1-10

而对于其他嵌套字段,我看到警告该字段没有索引(我想我需要使用映射?)对于这个字段和其他类似的字段,每个集合都被视为一个单独的值? 此外,字段类型显示为“字符串”而不是数字,这本身不是问题,但这意味着我无法搜索 abc.. 的任何单个值?

非常感谢!

找到几分钟开始测试:) :|

Error: [illegal_argument_exception] Invalid format: "1457354016603" is malformed at "6603"
    at respond (http://elastic.dev:5601/bundles/kibana.bundle.js:76155:16)
    at checkRespForFailure (http://elastic.dev:5601/bundles/kibana.bundle.js:76118:8)
    at http://elastic.dev:5601/bundles/kibana.bundle.js:74736:8
    at processQueue (http://elastic.dev:5601/bundles/commons.bundle.js:42333:29)
    at http://elastic.dev:5601/bundles/commons.bundle.js:42349:28
    at Scope.$eval (http://elastic.dev:5601/bundles/commons.bundle.js:43577:29)
    at Scope.$digest (http://elastic.dev:5601/bundles/commons.bundle.js:43388:32)
    at Scope.$apply (http://elastic.dev:5601/bundles/commons.bundle.js:43685:25)
    at done (http://elastic.dev:5601/bundles/commons.bundle.js:38134:48)
    at completeRequest (http://elastic.dev:5601/bundles/commons.bundle.js:38332:8)

@大数据工程师
1) - 我不相信这是由我的更改生成的消息,并且可能是 Kibana 之前存在的内容。
2) - 所以是的.. 看起来这些值存储为一个字符串,但这些可能不是嵌套的.. 我必须看看索引上的映射是什么样的,以了解存在什么/是否存在问题。 请在此处粘贴映射。

@Robitx
我假设这是一个日期字段......纪元时间有太多数字应该是 10 而不是 13 .. 你能更新/粘贴你发出的查询吗?

@帕多瓦尼
我刚刚在设置中选择了默认索引模式并返回到发现选项卡

我们用

      "timestamp": {
        "format": "dateOptionalTime",
        "type": "date"
      }

K 4.4.1+ES 2.2 工作正常,可能是 K 4.3 特定的(我之前没有尝试过这个版本)

@Robitx
我正在寻找使用的查询...或者您是说传递的查询只是用户界面中的标准日期窗口,而您没有指定查询? 我将根据 Kibana 的后续版本重新调整我的更改,并在分支更新时重新发布。

@ppadovani是的,只是 * 和一些时间范围

+1 用于可视化部分中的嵌套对象

@Robitx
你运行的那个操作从来没有命中我的任何解析器代码......所以我怀疑这是由于我所做的......我的设置是 K 4.3.1 + ES 2.1.1 - 我将我的 ES 升级到 2.2 和看看我是否得到相同的行为,然后我将分支重新设置为 K 4.4.1

刚刚升级到 ES 2.2.1 w/K 4.3.1 + 我的代码......无法重现:
image

我仍然会变基到 4.4.1 - 当前版本,当分支准备好时会更新这篇文章。

更新:

在新分支上重新基于 4.4.1: https :

在 ES 2.2.0 和 K 4.4.1 上测试

嗨,帕帕多瓦尼,

关于我之前的问题,我将放弃这些。 我已经在 AWS 中有一个弹性搜索实例(以及映射),我正在尝试将其与该实例联系起来。 但是 UI 上的 kibana 服务器状态显示:

plugin: elasticsearch 此版本的 Kibana 在所有节点上都需要 Elasticsearch ^2.1.0。 我在您的集群中发现以下不兼容节点:Elasticsearch v1.5.2 @ undefined (undefined)

我仍在使用https://github.com/homeaway/kibana/tree/fullNestedSupport而不是您提供的最新版本。 您是否可以使其与 1.5.2 兼容?
友善的建议。

非常感谢!!

@帕多瓦尼
我可以理解这是否可行,因为我们正在倒退,但是,Amazon Elasticsearch Service 不太热衷于升级到更新版本,这是可以理解的。 所以,我必须利用我们拥有的一切。 我们投入了大量精力来设置 AWS 实例(以及来自多个节点的日志转发、流媒体事件和其他详细信息),并且从头开始在单独的平台上重新发明所有内容对我们来说不是一个选择。 能够将其作为附加前端挂钩会很好。 我什至不确定是否会有另一个障碍?

谢谢!!

@大数据工程师
查看了以前版本中的 Kibana 代码后,我可以尝试应用更改的第一个版本是 4.1.6。 然而,代码有重大的重写/重构/重组,我不能简单地修补那个分支。 尝试让我的代码进入并运行需要大量的工作。

老实说,我不知道为什么 Kibana 团队会像每个版本一样更新所需的弹性版本。REST 接口只是不经常更改。 我推测他们这样做是为了迫使用户升级他们的弹性集群。

一种想法,您可以尝试在第 27 行附近更改 src/plugins/elasticsearch/index.js 中的版本

@帕多瓦尼
有效。 谢谢。

+1

@ppadovani嗨,感谢您升级到 4.4.1 版本,抱歉没有及时回复(我在之前的评论之一中错过了您的更新)。

它现在可以工作了,但我注意到的第一件事是性能问题,有时 kibana 会完全冻结(我无法测试更复杂的查询)。

可能导致此问题的原因很少,其中之一是我们每日索引中的多个字段(有数百个 http://pastebin.com/fktN0dR5)。

@Robitx在没有我更改的情况下,您是否对基本 4.4.1 K 代码有同样的问题? 还是只是因为我的变化? 我确实知道非常大的索引模式会导致 K 出现严重的性能问题。如果只是我的代码,那么我想我知道它可能是什么。 等我一天左右出来呼吸时,我会看一下。

@ppadovani基础 K 4.4.1 没有这个问题

一年了,这个问题没有解决......

妈的,elasticsearch 有非常需要的特性“嵌套对象”,而来自同一开发人员的 Kibana 仍然不支持这个特性。

你已经实现了这个功能,但仍然没有合并到主源代码中,并得到适当的支持。

而且我们仍然无法在我们的项目库存版本中使用具有“嵌套对象”支持的 KIbana。

他妈的太棒了!!!

@ppadovani非常感谢您在 fork 上的工作=)

@Robitx你能告诉我 Kibana 什么时候冻结吗? IndexPattern 定义? 或者当你开始一个新的查询时? 这可能存在某些可能的领域,我想缩小范围。

我修复了一个在打开发现/可视化选项卡时可能有影响的问题......我已经推送了一个修复程序,请重新测试。

@rashidkpc我已准备好基于这项工作生成拉取请求。 你能告诉我我应该根据哪个分支重新调整我的工作吗? 我目前针对 4.3.1、4.4.1 和 4.x 使用它。 (4.x 很接近,但我在运行单元测试时遇到问题。测试集群无法启动......)

嘿帮派(抄送@ppadovani)

正如我在https://github.com/elastic/kibana/pull/5411 中提到的,Elasticsearch 本身存在许多限制,特别是嵌套的 aggs/filters 不是自动的,并且 lucene 查询语法不支持嵌套搜索。 虽然这里采用的方法会为解决问题绘制不同的路径,但这不是我们想要走的方向。 这是一个狭隘问题的解决方案,但我们希望 Kibana 解决广泛的挑战。 在这种情况下,这意味着牺牲较小的胜利以获得更大的胜利。

虽然我们正在考虑为 Kibana 开发一种语言的可能性,但我们还没有确切地决定我们想要的功能集是什么,也不想半途而废,或者只考虑一个目标。 我们正在考虑 Elasticsearch 和 Kibana 中的一些策略和功能集,但我们仍处于形成阶段。 随着时间的推移,我们希望这包括搜索、转换和可视化,就像你在 timelion 之类的东西中看到的那样,我们肯定会在我们这样做时记住查询嵌套文档的想法

我注意到这存储了嵌套路径,但是我们正在删除缓存映射https://github.com/elastic/kibana/pull/6648并用 Elasticsearch 中的新 API 替换它: https :

现在我们建议使用include_in_parentcopy_to来采用@tbragin 的方法。 对于 90% 的聚合,这种方法将完美运行。

我很高兴这个解决方案适用于那些不能使用include_in_parentcopy_to ,对@ppadovani 的成就印象非常深刻。 我很想看到这样的东西作为插件实现。 现在查询输入基本上需要 2 种查询,我们可能会找到一种方法来使其可插入。

嘿,插话。我和 Rashid 聊了聊这个,虽然我感到用户想要使用 Kibana 进行嵌套映射的痛苦,但以更通用的方式支持它(这可能意味着 Elasticsearch 级别本身的附加功能)是前进的道路这保持了我们在 Kibana 中所需的灵活性。 虽然得到这个建议的改变可能会解决不支持嵌套的短期问题,但它会被证明是有问题的。

我觉得 Kibana 需要在这里支持嵌套,但这是其中一种情况,如果需要如何解决它并不明显,最好不要解决它,直到我们有一个感觉很自然的解决方案。 我们肯定需要继续探索,其中一个我们在不同地方聊过的,是自动支持 ES 本身的嵌套(包装等)。

看到这个问题得到了优雅的解决,我感到非常兴奋。

+1

+1

恕我直言,我必须恭敬地不同意 Kibana 维护者的立场。 但是,如果我们能找到一种方法将这些东西插入 Kibana,我会全力支持。

与此同时,我将继续为那些希望继续使用我创建的版本的人维护和修复我的分支/分支上的错误。 我知道我们将来会在实时 BI 分析仪表板中广泛使用它。

牛。 不是宠物。

+1 :)
在 Kibana 中使用嵌套对象可能很棒!! (有人有一个插件吗?...)

+1

+1

+1

@tbragin您提到的方法不适用于嵌套类型。 无论类型如何,它都会聚合所有数据。

+1

+1

+1

+1

这个功能是如此简单,我实际上震惊地发现它不仅不受支持,而且开发人员显然没有计划支持它。 见鬼,如果你们不会自己做,请与您的项目经理交谈并聘请@ppadovani制作插件。

+1 因为缺少嵌套对象严重阻碍了我的项目

对于任何寻求有关非规范化作为规避此问题的方法的讨论的人:解决 Kibana 缺少对嵌套对象和父/子的支持

Elastic 如果网站上有关于此问题的免责声明,以避免用户浪费时间尝试实现不受支持的功能,那就太好了。 为什么? Kibana 产品页面说“与 ElasticSearch 无缝集成” ,这在这里不是真的:)

仅供参考 - 上面讨论中引用的我的代码分支是旧的..当前分支是:

https://github.com/homeaway/kibana/tree/nestedSupport-4.x

我们正在内部积极使用它,并继续更新我们的内部版本。 如果有兴趣,我可以/将更新 github 版本。

皮埃尔

+1

+1

+1

+1

+1

+1

我记得一年多前对此进行了 +1,从那时起,Kibana 开发团队除了挖掘他们的治疗方法之外什么也没做,并且大多忽略用户,最后当他们的脚被置于火中时,他们会做出更多或 -少说“不”,表示“感觉不自然”。

我还在许多其他要求的功能上看到了这种模式,例如:

  • 支持调用操作系统端 groovy 脚本。
  • 支持能够使用 ES 脚本指标聚合(特别适用于计算加权平均值)。
  • 等等...

这一切都违背了整个 Elastic Stack 5 愿景的立场,即他们(Elastic)将在 Kibana 中支持更多来自 Elasticsearch 的底层功能。 但我很少看到支持这些说法。

结果,我看到 Kibana 在诸如 Siren 的 Kibi 之类的分叉上失去了优势,它决定在诸如此类的项目上接力并提出解决方案。

我很感谢 Kibana 的开发者为我们提供了一个很棒的可视化工具。 但是 Elastic 需要决定继续前进,Kibana 是要保持一个简单的可视化工具,还是听取社区的意见并扩大其实用性。 如果决定是前者,那么当其他人决定利用这些缺点时,预计用户会离开。

+1

@cslinuxboy

支持调用操作系统端 groovy 脚本。

本文涵盖的大多数用例将通过https://github.com/elastic/kibana/pull/7700解决

支持能够使用 ES 脚本化指标聚合

我认为没有人反对这个(至少,这里没有看到任何反对 https://github.com/elastic/kibana/issues/2646),事实上现在是添加它的时候了,因为 Elasticsearch 已经添加了无痛脚本语言。 这真的只是一个人找到时间的问题。

+1

+1

+1

我又开始在我的前叉上工作了。 我想向社区道歉,直到大约一个月前我才知道我没有为分叉打开问题,所以没有人能够指出存在错误。 这已经得到纠正。

当前分支: https :

按照我打算实施它们的顺序进行更新:

  • 向查询解析器添加对日期偏移的支持
  • 在查看结果时添加对嵌套字段发现的支持 - 完成
  • 添加对父/子查询和聚合的支持
  • 为查询添加对地理形状类型的支持(即点、框等) 这是我们内部语言最近增强功能的一个端口。
  • 为查询字段中的字段名称添加预先输入
  • 可能会尝试为现有的 Elasticsearch 简单查询语言构建一个解析器,以解决无效查询的烦恼,要么导致从 Elasticsearch 返回堆栈跟踪,要么不返回任何结果而没有说明原因。 如果我做这方面的工作,那将是在我完成上述工作之后。 如果我这样做,我将考虑为 Kibana 端的语言添加嵌套和父/子支持。

对于那些表示 Kibana 团队没有听取社区意见的人,我想表达一下我的看法。 如果存在差距,Kibana 团队不能简单地依靠 Elasticsearch 来提供所需的功能,以保持 Kibana 的“纯”。 市场份额不是通过这种方式获得的,而是失去的。

+1

+1
@Bargs :这个问题有什么进展吗? 什么时候会得到解决/优先考虑?
很长的线程....这对像kibana这样的产品不好..
我们感谢您的努力

这很糟糕:-(

homeway 在 Kibana 4.3.1 上构建了嵌套的 aggs & 查询支持,请检查一下.. 希望这有帮助..

https://github.com/homeaway/kibana/tree/nestedSupport-4.x

@ankitchheda我知道这件事,但是少数人维护的与主要项目(正在大量开发)的理念

我想为此做点什么,但我没有时间,所以现在我至少尝试施加压力,希望开发人员不要忽视这个问题:|

+1

仅供参考 - 我维护的用于嵌套支持的 fork,现在支持以下版本:

4.5.X
4.6
4.7
5.X

它可能不遵循主要开发人员的“哲学”,但它确实有效并且运行良好。

我刚刚遇到了这个问题。 这是一个缺点,拥有一个可行的解决方案会非常有用。

@tbragin@rashidkpc - 提议的解决方法没有抓住重点 - 你明白了
嵌套对象的一些东西 - 但你得到了错误的结果! 嵌套
聚合给出了不同的结果(我会做一个小例子,稍后再贴在这里)。

我将测试@ppadovani 的分支。

+1

:龟::破折号:

@Bargs嘿,是从 fork 危害到基本功能性能的变化吗?

+1

+1

+1

+10086

+1

+1

+1

include_in_parent 仍然适用于 ES 和 Kibana 5.2? 我试图用作替代品但没有成功。

@gustavomr我相信它会起作用,但仅适用于某些用例。 它不适用于嵌套查询/聚合可以提供的所有可能的查询用例。

注意:我的 Kibana 5.1 分支现在使用搜索图标旁边的切换按钮在本地弹性简单查询语言和我包含的嵌套查询语言之间切换。 我还修复了有关嵌套字段指标的各种问题。
https://github.com/homeaway/kibana/tree/nestedSupport-5.1

@ppadovani非常感谢您这样做。 是否可以将在 kibana 中启用嵌套对象的工作与创建新查询语言的工作分开? 如果这些可以是单独的分支,那么我们可以只使用前者并将其与新的 kibana 版本合并,而不必合并两个功能。

您是否已经为此叉创建了一个 docker?

@ppadovani +1 用于叉子的

@gkozyryatskyy - 请在叉子上打开一个问题,我会查看它。

@imranq2 - 我可以这样做,但请注意,简单的弹性查询语言不支持嵌套查询。 如果您有嵌套数据并想要查询它,则必须手动将查询构建为 elasticsearch json blob,并将其粘贴到查询框中。

+1

我的 fork 现在在 nestedSupport-5.2 分支上支持 5.2。

@ppadovani太好了! 如果您需要为此制作 docker 容器的帮助,请告诉我。

还没有完成 docker 容器,但有一些时间来使用发现选项卡以及它如何显示嵌套数据......从那些正在监视嵌套支持问题的人那里寻找反馈。 该表是递归的,嵌套字段的过滤器似乎工作得很好......但列中的切换字段还没有工作......我仍然需要考虑如何/是否应该工作。
image

仅供参考 - 这项工作基本完成,所有支持的分叉/分支都有变化,从nestedSupport-4.5.4 到nestedSupport-5.2

@Bargs - 我知道我所做的所有嵌套工作都不是你们想要的,但我很好奇在发现结果中显示嵌套数据的工作是否是您可能想要的。 它不依赖于我以前的任何工作。 请参阅此问题以获取更新的屏幕截图:
https://github.com/homeaway/kibana/issues/12

如果这是你们想要的东西,请告诉我,我会打开一个问题并包含一个补丁。

看起来很有趣@ppadovani ! 如果您想打开公关,我肯定有兴趣查看。 我们已经讨论了一些关于向 Discover 添加对嵌套字段的更好支持的内容,因此最好能有一些具体的讨论。

@ppadovani我现在正在为此创建一个http://staging.elastic.co/ $(VERSION_TAG)/downloads/kibana/kibana-${ELASTIC_VERSION}-linux-x86_64.tar.gz 这样的焦油球? 如果是这样,我可以将其拉入我的 docker 容器中。 否则,我将需要构建您的分支并创建 tarball。

@imranq2我不提供我的 fork 的发行版,所以你需要自己构建它。

仅供参考 - 我已经为那些感兴趣的人在发现选项卡中创建了一个支持嵌套数据的拉取请求:
https://github.com/elastic/kibana/pull/10814

+1

+1 给我
+10 给我的同事

+1

+1

+1

+1

+1

+1

+1。 这在 ELK5 中支持吗?

+1

这确实是一个要求,因为不支持嵌套对象实际上是我公司广泛采用 kibana 的一个障碍,因为您必须为 kibana 创建一个索引和另一个带有嵌套文档的索引,以便通过普通 API 进行更智能的搜索

+1
在我的映射中,它可以防止索引属性可能的“爆炸”。

+1

+1

+1

请停止发布 +1 评论,这些评论只会向所有订阅此线程的人发送垃圾邮件。 相反,请单击本期顶部的黄色大“竖起大拇指”按钮以对其进行投票。

+1

Kibana 的开发人员,请做点什么吧,伙计们。 在许多情况下使用没有嵌套对象的 Kibana 是没有用的。 您准备没有嵌套对象的 6.x 版...

我们的系统扫描房屋的文本,然后将结果保存到 ES。 所以 ES 包含带有房屋数组的主要文件。 House 是嵌套的对象。

我无法使用可视化来创建仪表板,分析我们在文本中找到的房屋。
请做点什么。 房子着火了。

迫切需要在 kibana 中使用嵌套对象。 感觉不好,这不是内置的。

███████╗████████╗██╗██╗     ██╗         ██╗    ██╗ █████╗ ██╗████████╗
██╔════╝╚══██╔══╝██║██║     ██║         ██║    ██║██╔══██╗██║╚══██╔══╝
███████╗   ██║   ██║██║     ██║         ██║ █╗ ██║███████║██║   ██║   
╚════██║   ██║   ██║██║     ██║         ██║███╗██║██╔══██║██║   ██║   
███████║   ██║   ██║███████╗███████╗    ╚███╔███╔╝██║  ██║██║   ██║   
╚══════╝   ╚═╝   ╚═╝╚══════╝╚══════╝     ╚══╝╚══╝ ╚═╝  ╚═╝╚═╝   ╚═╝   


Still D.R.E.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

另一个在这里!

对于那些可能使用我的带有嵌套支持的 Kibana fork 的人,我将停止对 Kibana 5.4.x 版之后的那个 fork 的支持。 相反,我会将大部分(如果不是全部)功能转移到 Kibana 插件中。 我希望在年底前为最新的 5.x 版本准备好插件。 您可以在此处关注进度: https :

我刚刚开始工作,所以不要指望在几周内出现任何重要的事情。

+1

+1

+1

+1

+1

我已经为我在嵌套支持插件上所做的工作发布了屏幕截图和状态更新。 观看问题以获取状态更新。

截图和更新

我已经发布了支持 Kibana 5.6.5 的 1.0.0 预发布版本。

有关初始预发布内容的详细信息,请参阅此问题:屏幕截图和更新

V1.0.0-beta1

我的插件是 Kibana 5.6.5 版本的完整功能。 我有一些清理任务,然后我将削减 5.6.5 版本并开始向前移植到 6.1.X。

特征:

  • 嵌套查询支持
  • 嵌套聚合支持
  • 发现结果嵌套支持
  • 发现汇总字段显示优先级(这其实是个新东西)

有关详细信息,请参阅自述文件

我的插件现已发布! 支持 5.5.3、5.6.5 和 5.6.6。 我将在本周末移植到 6.0.X。

我可能不会再在此问题上更新状态。 请访问我的 GitHub 页面以查看版本、问题等。

谢谢!

@ppadovani能否发布 5.4.0 的支持版本,谢谢。

@ppadovani我会留意 6.0.x 端口!

@SolomonShorser-OICR
我已经发布了 6.0.1 Beta 1 版本。

唯一已知的限制是过滤器栏是不可操作的,因为它被硬编码为只能使用 lucene 查询语言。 我正在想办法解决这个问题,但可能要到下周末才能找到解决方案。

我现在已经发布了 6.0.1 的插件版本,接下来是 6.1.x。

@帕多瓦尼
感谢您的工作和 6.0.1 版本!

基于 kibana 6.0.1,安装此插件后,某些 kibana 功能无法正常工作。

单击 timelion 时,它显示错误消息:
image

如果安装了 x-pack,某些 x-pack 功能“discover”在“Foreach”中有另一个错误消息

嘿 Kibana 团队,你为什么还没有聘请@ppadovani

@sccds - 请将此错误报告移至我的 GitHub 存储库:

https://github.com/ppadovani/KibanaNestedSupportPlugin/issues/27

如果有人对我的插件有问题,请在我的 repo 上打开问题,不要在这里开始对话。 这个问题的订阅者太多了。

@Hronom - 我很欣赏这个想法,但我的强项不在 Javascript .... 虽然构建这个插件和黑客 Kibana 肯定有助于我在该领域的能力。

仅供参考 - 我的插件现在与 Kibana 版本保持同步。 我已经发布了 6.1.2 支持。

谢谢@ppadovani ,继续

+1

+1

+1 你好,Tomitribe 对这个功能很感兴趣。 不知道这个功能什么时候实现?

@ppadovani我在哪里可以询问功能? 我正在努力处理数据表中的嵌套聚合。

@bumerankkk去这里打开一个问题: https :

或者,如果您转到与您的问题相符的文档页面之一,您可以在页面底部添加评论。

https://ppadovani.github.io/knql_plugin/overview/

这是在积极工作吗? 我们是否有关于此类功能何时发布生产版本的时间表?

生日快乐🎂 '嵌套类型聚合',🎁

现在你已经四岁了。 不久前,你还那么小,那么可爱。
希望你长大了,以后我们会有一些共同的美好岁月。

最好的马鲁

+1

+1

+1

+1

+1

+1

+1

为什么这还没有实施

出于原因,有了这个功能,乳清就没有线程,没有乐趣,没有人会去 kibana 的 github,这是某种灯塔

最新的 elk 版本对我来说正确支持嵌套数据

El El mié,2018 年 6 月 6 日上午 22:08,Eugene通知@github.com
备注:

出于原因,有了这个功能,乳清就没有线程,没有乐趣和
没有人会去 kibana 的 github,这是某种灯塔


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/elastic/kibana/issues/1084#issuecomment-395214259
或静音线程
https://github.com/notifications/unsubscribe-auth/AMK55lokgriJHhPF5EuBN6yREr5-dT4-ks5t6ETAgaJpZM4Bru7J
.

@javixeneize我坐在6.2.4版本上,找不到 dat 嵌套对象支持,如果我错了,请纠正我

我有那个版本,我可以访问 ab,我的结构是 {Id:xx,
a: {b:xx}}

萨尔瓦多萨尔瓦多MIE 6月6日2018年拉斯维加斯22:18,尤金[email protected]
备注:

@javixeneize https://github.com/javixeneize我坐在这里 6.2.4
版本,找不到 dat 嵌套对象支持,如果我错了,请纠正我。


你收到这个是因为你被提到了。

直接回复本邮件,在GitHub上查看
https://github.com/elastic/kibana/issues/1084#issuecomment-395216828
或静音线程
https://github.com/notifications/unsubscribe-auth/AMK55tPrh5Qi8m7PyHbQatkRAw8qj4RGks5t6EcKgaJpZM4Bru7J
.

@javixeneize你有下一个映射type : nested吗?
您可以通过GET /index-name获取映射

{
  "document": {
    "properties": {
      "locations": {
        "type": "nested",
        "properties": {
          "name": {
            "type": "keyword"
          },
          "popularity": {
            "type": "long"
          }
        }
      }
    }
  }
}

我明天会检查,但我有默认配置

萨尔瓦多萨尔瓦多MIE 6月6日2018年拉斯维加斯22:24,尤金[email protected]
备注:

@javixeneize https://github.com/javixeneize你有下一个映射吗
类型:嵌套?
您可以通过 GET /index-name 获取映射

{
“文档”: {
“特性”: {
“位置”:{
“类型”:“嵌套”,
“特性”: {
“开始”: {
“类型”:“长”
},
“结尾”: {
“类型”:“长”
},
“标准化”:{
“类型”:“关键字”
},
“原来的”: {
“类型”:“关键字”
}
}
}
}
}
}
}


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/elastic/kibana/issues/1084#issuecomment-395218644
或静音线程
https://github.com/notifications/unsubscribe-auth/AMK55npNY8uTVUPgVIbjXfAXSB5tPwDwks5t6EikgaJpZM4Bru7J
.

@javixeneize提前致谢!
您可能将子 json 对象展平到主文档,但这不是嵌套对象。

是的,请小心@javixeneize您的数据不会按预期相关联,除非您在 ES 中专门将该字段的映射设置为嵌套

https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html

主要问题是嵌套对象中的每个字段都变成了一个数组,并且您失去了属性之间的相关性。

在暂时转储到 es 之前,我只是将我的数据展平了。

如果你等不及 Elastic 来实现这个,你可以使用我的 Kibana 插件:

概述:
https://ppadovani.github.io/knql_plugin/overview/
安装:
https://ppadovani.github.io/knql_plugin/installation/
查询语言(类似 SQL):
https://ppadovani.github.io/knql_plugin/knql/

支持 5.5.3 到 6.2.4,如果缺少某个版本,5.5 之后请开 issue:
https://github.com/ppadovani/KibanaNestedSupportPlugin

欢迎贡献、功能请求和错误报告。

好吧,那我得等……

El El Jue,2018 年 6 月 7 日上午 0:38,Pierre Padovani通知@ github.com
备注:

如果你等不及 Elastic 来实现这个,你可以使用我的 Kibana
插入:

概述:
https://ppadovani.github.io/knql_plugin/overview/
安装:
https://ppadovani.github.io/knql_plugin/installation/
查询语言(类似 SQL):
https://ppadovani.github.io/knql_plugin/knql/

支持 5.5.3 到 6.2.4,如果缺少版本,请在 5.5 之后
打开一个问题:
https://github.com/ppadovani/KibanaNestedSupportPlugin

欢迎贡献、功能请求和错误报告。


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/elastic/kibana/issues/1084#issuecomment-395246977
或静音线程
https://github.com/notifications/unsubscribe-auth/AMK55q36DWICC4QoNald5fO7rCBnLdTgks5t6GgJgaJpZM4Bru7J
.

+1

+1

+1

+1

+1

+1

非常有用的功能... +1

如果没有这种支持,Kibana 对我的用例绝对没用。 我不应该扁平化或重组我的数据。 我应该能够将数据放入并获得可视化或聚合。 四年后仍然没有嵌套对象支持?

任何估计何时可以使用此功能?

弹性的人可以让我们知道这个功能是否被添加到 Kibana 中? 这张票已经开放了将近 5 年了。

另外,如果在 Kibana 中无法使用这样的功能,那么发布该功能有什么意义?

不要误会我的意思,但感觉有点奇怪。

+1

+1

@dayotoro @berkoaviv @yechanpark @macermann2 @mahnejo @bphenriques

请不要添加像 +1 评论这样的评论。 特别是对于您真正关心的问题! 让我解释一下,任何打开通知的人都会很容易生气并取消订阅该线程。 这意味着贡献者不会仅仅根据参与的参与者数量将其视为一个重要问题。 当人们退订时,这个数字会下降。

相反,您应该做的是通过右上角的框订阅该线程,并为最初的 Github 问题竖起大拇指以表示您的支持。

@bugs181这在这里

我认为科学家应该探索这个黑洞!

Kibana 的开发者似乎拥有异常的力量!!!

@bugs181这在这里

你有没有想过他们不想通读整篇文章,用大量的“+1 我也是”评论来寻找对他们有价值的信息?

@ppadovani有一个可以使用的开源插件(看看他上面的评论

@米卡76
我正在使用这个。

在简单的情况下非常有用

@mika76 请注意,由于时间限制,它目前没有得到积极维护。

ppadovani 评论于 28 天前
嘿伙计们...我发现我的时间因工作和生活而受到严重限制。 此外,尽管我能够部分解决问题,但 Kibana 团队在迁移到 React 时所做的更改将主要需要重写我所做的大部分工作。

@mika76是的,这个插件是现在让嵌套对象工作的唯一方法。
但令我感到奇怪的是,Elasticsearch 官方支持嵌套对象,而 Kibana 没有。

正如@bugs181所提到的,它目前没有得到积极维护,这意味着您无法升级到最新版本的 ELK 堆栈。

所以官方支持也意味着适当的维护。 但是因为开发人员在这个问题上吐槽我们没有官方支持。

我必须在这里第二次@bugs181 。 '+1'-ing 这个问题并以其他方式发送垃圾邮件,无助于提高对此的认识,但只会让人们将其静音或让我们更接近我需要锁定它的地步,我真的不这样做不想要,因为我希望让每个人都可以讨论每个问题,因为我相信开放式沟通。

到目前为止,我也一直建议使用该插件。 我不知道,这不再是积极维护并感到非常难过,听到这个消息。 我们也知道这个问题已经开放 5 年了,我们正在对问题进行分析(显然是在 Kibana 中 - 见附上的截图)并且知道这是反应最激烈的问题:

screenshot-20190319-185201

但是正如您非常清楚的那样,还有(字面上)数以千计的其他问题未解决,因此我们总是需要在功能、错误修复等之间取得平衡,以找到一个好的优先级。 另外(但不仅如此)因为该功能总是有一个非常可靠的社区插件,所以到目前为止它还没有得到足够的优先级(以解决其他问题)。 同样经常有不同事物之间的技术关系,例如对于嵌套字段支持,我们目前首先希望在我们开始之前完成对整个可视化渲染管道的大修(#19813),因为它是高度链接的一起。 尽管如此,我们目前在 7.x 的路线图上遇到了这个问题,希望不会被其他技术更改所阻止,因此我们可以很快将该功能移至 Kibana 核心,使其在没有社区插件的情况下可用。

支持嵌套对象可视化的请求是否包括对父子关系的支持? 我有一位客户询问父子可视化。

@MorrieAtElastic不,亲子将是一个单独的问题。

https://github.com/elastic/kibana/issues/3730
https://github.com/elastic/kibana/issues/20255

这确实是一个大问题,因为我们无法在 Kibana 中正确显示 1:M 关系,因为 ElasticSearch 支持嵌套对象,因此我们可以加载数据但无法正确查看。 这必须尽快修复。

谢谢,
拉克什

今天开始在 KQL 中处理嵌套字段支持。 创建了一个单独的问题来跟踪,因为 Kibana 中的完整嵌套字段支持涉及 KQL 之外的许多更改。

https://github.com/elastic/kibana/issues/44554

OMG 这是真的吗? 5年后...

新数据类型如何:扁平化? 将来会支持这种新类型的可视化吗? 许多服务客户都被引导到这种新类型,他们正在询问可视化是否/何时可以发挥作用。

@Barrybigbuddy我不确定扁平化的计划是什么,你能为它创建一张单独的票吗?

我希望在 Kibana 中代表父子关系。 所以请求你优先考虑这个功能。 谢谢。 姆杰

+1

惊人的! +1在这里! 此功能是否有特定的时间表?

让我成为这里的派对大便并做一个简短的提醒:有很多人订阅了这个问题(228 名社区人员 + 几个 Elastic 团队),所以如果我们将+1保留在最低限度。 感谢 GitHub 的良好反应功能,您还可以将您对@Bargs 的认可和喜爱添加到他的评论中,而不会触发所有订阅者的通知(或者您的不认可,然后他可以再次停止处理嵌套字段支持 :wink:)。 尤其是因为这是一张如此大的票,请不要将它用于与其他字段类型无关的问题。

我将在此处为其他字段类型留下一些参考资料:

这个功能什么时候到? 我们正在积极致力于此,这将有不同的阶段(KQL、过滤支持、可视化等),可能会出现在不同的版本中,这将取决于开发过程将如何进行。 我们将在此处发布与此功能相关的拉取请求作为评论,因此您可以在 PR 中看到特定阶段/部分支持将进入哪个版本。

我不确定这是否是同一个问题,但我有一个包含对象列表的索引,但没有使用“嵌套”数据类型。 但是,在“可用字段”下的 Kibana 中,我看不到列表中对象内的字段。 这是一个已知的限制吗?

@ppadovani插件是否可用于 kibana-7.3.1?

大家好,我想我找到了解决这个问题的某种方法。 阅读映射的源代码我发现嵌套映射类型有一个 include_in_parent 选项。 使用此选项时,我可以毫无问题地在 Kibana 中可视化一组对象!!! 出于某种原因,这个选项没有出现在 ES 文档中。 也许我出了什么问题,但显然一切正常。 我使用字段选项,因此我可以搜索关键字和全文。

映射

PUT /test_index
```json
{
“映射”:{
"动态": "严格",
“特性”: {
“状态”: {
“类型”:“关键字”
},
“由...制作”: {
“类型”:“嵌套”,
“include_in_parent”:真,
“特性”: {
“名”: {
"类型": "文本",
“领域”:{
“生的”: {
“类型”:“关键字”
}
}
},
“姓”: {
"类型": "文本",
“领域”:{
“生的”: {
“类型”:“关键字”
}
}
}
},
“动态”:“严格”
},
“人们”: {
“类型”:“嵌套”,
“include_in_parent”:真,
“特性”: {
“名”: {
"类型": "文本",
“领域”:{
“生的”: {
“类型”:“关键字”
}
}
},
“姓”: {
"类型": "文本",
“领域”:{
“生的”: {
“类型”:“关键字”
}
}
}
},
“动态”:“严格”
}
}
}
}

### Documents
POST test_index/_doc
```json
{
  "state": "done",
  "created_by": {
    "first_name": "Patricio",
    "last_name": "de Villa"
  },
  "people": [
    {
      "first_name": "Patricio",
      "last_name": "de Villa"
    },
    {
      "first_name": "Test",
      "last_name": "Test"
    }
  ]
}

@patodevilla

不支持使用 include_in_parent 或 copy_to 作为解决方法,并且可能会在未来版本中停止运行。

https://www.elastic.co/guide/en/kibana/7.x/nested-objects.html

嵌套字段支持阶段 1 在 7.6.0 中发布

此问题的一个小更新:我们刚刚发布了 Kibana 7.6.0,它最初支持其中的嵌套字段。 您现在可以在 Kibana 的以下位置使用嵌套字段:

  • 索引模式将正确检测嵌套字段
  • 您将能够在 Discover 中观看 Nested Fields
  • 通过过滤器栏过滤嵌套字段有效
  • KQL 允许搜索嵌套字段(有关查询嵌套字段的语法的解释,请参阅KQL 文档

我们目前正致力于在可视化中启用嵌套字段,我们将继续使用相关信息更新此问题。

你好! 我们正在等待 NESTED 函数。 我们什么时候可以看到它? 这是唯一没有完全切换到 Kibana 的时刻(Elastic 是最好的)。 全世界都在看着你。

嵌套字段查询仍然受到 KQL 的困扰。
例子:
考虑定义为的索引映射
"first": { "type": "nested", "properties": { "second": { "type": "nested", "properties": { "field": { "type": "text" } } } } }
我已经根据这个索引创建了索引模式并想查询first.second.field : "test"
检查选项卡中的此查询将生成
"filter": [ { "bool": { "should": [ { "match": { "first.second.field": "test" } } ], "minimum_should_match": 1 } } ],
这是不正确的。
正确的版本还应包括嵌套语法"nested": {"path": "first.second",...}

Ping @elastic/kibana-app-arch(团队:AppArch)

@IlyaHalsky请查看有关嵌套字段的KQL 文档。 嵌套字段需要特定的语法来查询,因为您可以通过多种方式查询它们(在您的情况下,您很可能只想这样做: first.second:{ field: "test" } )。

当您第一次尝试在 KQL 查询中使用嵌套字段时,您还应该看到一条 toast 通知,它将链接您到该说明。

请问是否有新的kibana版本支持visual中的嵌套字段:
我的数据示例:
{
"fieldX": "x",
"fiedY": "Y",
“异常”:[
{
"类别": "系统",
"name": "cpu",
“日期”:“2020-03-11T13:33:40.000Z”
},
{
"类别": "重启",
"name": "重置",
“日期”:“2020-03-11T13:33:40.000Z”
},
{
"类别": "系统",
"name": "记忆",
“日期”:“2020-03-11T13:33:40.000Z”
}
]
}

我想在 kibana 中可视化饼图,其中:
切片大小计数 = 异常数组对象的总数(文档计数 x 对象计数按异常数组)
第一个桶 = anomalies.category
第二个存储桶 = anomalies.name

换句话说,我想按异常类别可视化异常名称的分布?

+1

有这方面的消息吗? 7.6 版本已经有几个月的历史了,7.7 和 7.8 的发行说明中没有提到这一点,7.9、7.x 和 master 的文档也没有包含有关此功能的新信息。

只是为了表达我们对在可视化中获得嵌套聚合支持的寄予厚望。 会很棒!

此页面是否有帮助?
0 / 5 - 0 等级