如何查找具有映射冲突的字段

时间:2016-07-20 07:30:27

标签: elasticsearch logstash kibana kibana-4

我在Kibana中的索引设置告诉我,我的logstash- *索引模式中有映射冲突的字段。

找出哪些字段存在冲突映射和/或哪些索引发生冲突的最简单方法是什么?

5 个答案:

答案 0 :(得分:4)

至少从Kibana 5.2开始,您可以输入"冲突"进入Filter字段,它将所有字段过滤到只有那些有冲突的字段。在最右边有一个名为"控件"的列,每个字段都有一个带铅笔图标的按钮。单击它将告诉您哪些索引具有哪种映射。

字段仅过滤到有冲突的字段: fields filtered to only those with conflicts

字段映射冲突的指标: indices in which field mapping conflicts

答案 1 :(得分:3)

您可以轻松地在Kibana中使用映射API查找字段的映射方式。

如果您知道映射冲突,那么我将假定您知道存在冲突的字段名称。这些将列在“管理/索引模式/ index_pattern”下

如果您有每天创建的索引,例如production-2020.06.16,则可以搜索带有production *的所有索引。

转到Dev Tools并输入此查询,更改索引模式(production *)和矛盾的字段名以适应您的需求。

GET production*/_mapping/field/conflictedFieldname

这将拉出所有与production *模式匹配的索引,并将为每个索引列出冲突字段名的映射。滚动查看哪个与另一个不一样。

您还可以在此处查看Elasticsearch文档:Elasticsearch documentation: Get Field Mapping API

出现冲突的原因是,Elasticsearch使用索引中的第一个值来最好地猜测应该是哪种数据类型。通过为您关注的索引模式放置模板,可以确保它始终是同一类型。

Elasticsearch documentation: Put Index Template

答案 2 :(得分:1)

在定义模式时,应该很容易发现字段列表中的那些。像这样:

enter image description here

答案 3 :(得分:1)

在Elasticsearch 5.5.2中,您可以单击过滤器搜索框右侧的下拉列表,然后选择“冲突”。这是在“索引模式”页面中。

答案 4 :(得分:0)

因为我无法在gui中找到映射冲突。我走了硬道路分析我的配置丢失/冲突字段类型找到了罪犯并重新索引我的数据。