当在Kibana中添加过滤器时,所有字符串字段都有一个条目和**.keyword**条目。有什么区别?
ct3nt3jp1#
从elasticsearch 5中没有字符串字段类型,取而代之的是两种类型:关键字-用于筛选、聚合和排序。文本-用于搜索文本。当您使用字符串字段(例如名称)为文档编制索引时,elasticsearch会将该字段Map到文本字段以进行搜索,并Map到关键字以进行筛选。Kibana使用字段进行筛选和聚合,因此使用关键字。请看elasticsearch documentation
toiithl62#
事实上,这不是Kibana问题,而是ElasticSearch问题,它使全文和关键字搜索都一致。field.keyword用于关键字搜索和聚合,而原始字段用于全文搜索。有一个官方博客专门为这个:https://www.elastic.co/cn/blog/strings-are-dead-long-live-strings官方讨论板上也有一个帖子,这里是供大家参考的链接:https://discuss.elastic.co/t/why-am-i-getting-keyword-for-my-feilds-in-index-pattern/137983
93ze6v8z3#
如果您已经有匹配的关键字字段,则可以使用.keyword字段在索引上创建脚本化字段。
3条答案
按热度按时间ct3nt3jp1#
从elasticsearch 5中没有字符串字段类型,取而代之的是两种类型:
关键字-用于筛选、聚合和排序。
文本-用于搜索文本。
当您使用字符串字段(例如名称)为文档编制索引时,elasticsearch会将该字段Map到文本字段以进行搜索,并Map到关键字以进行筛选。
Kibana使用字段进行筛选和聚合,因此使用关键字。
请看elasticsearch documentation
toiithl62#
事实上,这不是Kibana问题,而是ElasticSearch问题,它使全文和关键字搜索都一致。field.keyword用于关键字搜索和聚合,而原始字段用于全文搜索。
有一个官方博客专门为这个:https://www.elastic.co/cn/blog/strings-are-dead-long-live-strings
官方讨论板上也有一个帖子,这里是供大家参考的链接:https://discuss.elastic.co/t/why-am-i-getting-keyword-for-my-feilds-in-index-pattern/137983
93ze6v8z3#
如果您已经有匹配的关键字字段,则可以使用.keyword字段在索引上创建脚本化字段。