Kibana 报告字段存在冲突,我该如何解决?

Dan*_*dré 7 elasticsearch kibana

在 Kibana 中,我注意到在进行索引模式刷新后,我的一个字段显示为conflicted.

例子:

Kibana 中的冲突字段

所以我知道这是因为 Elastic Search 在该字段中发现了不同类型的值,我如何确定这一点?它导致我的视​​觉效果破坏,因为它们无法与冲突的字段一起使用。如何针对现有数据解决这个问题?

Dan*_*dré 11

经过几个小时的尝试和浏览 Elastic 文档后,我终于找到了问题的答案。

在Elastic Search 5.1(我使用的版本)中,您可以重新索引那些“有问题”的特定索引。

您可以通过单击Management>Index Patterns并查找显示为 的字段来在 Kibana 中找到此内容conflicted。然后单击相应的铅笔图标即可查看该字段的详细信息。其中将显示不同字段类型下的索引。

我在 Power-Shell 中编写了一个脚本,通过指定“有问题的索引”来自动执行此操作,然后执行以下操作(假设您的有问题的索引称为:)log-20170101

  • 创建映射log-20170101-1
  • 重新索引log-20170101log-20170101-1
  • 删除log-20170101
  • 创建映射log-20170101
  • 重新索引log-20170101-1log-20170101
  • 删除log-20170101-1

现在,当您在 Kibana 中刷新 Index Patter 时,您会注意到该字段不再是conflicted.

您可以阅读:映射重新索引

确保在下面指定新映射时,使用您正在寻找的适当的映射数据类型。

您可以通过使用以下命令查询 Elastic API 来获取现有映射:

GET /_mapping/<your mapping name>
Run Code Online (Sandbox Code Playgroud)

这是我在 Power-Shell 中编写的骨架(示例)脚本,它非常基本,但我认为它可以提供帮助。

GET /_mapping/<your mapping name>
Run Code Online (Sandbox Code Playgroud)

编辑

请参阅这篇文章,了解如何设置默认映射以尝试防止此问题再次发生。