gpt4 book ai didi

elasticsearch - field 和 field.keyword 的区别

转载 作者:行者123 更新时间:2023-11-29 02:45:06 26 4
gpt4 key购买 nike

如果我将包含多个字段的文档添加到 Elasticsearch 索引,当我在 Kibana 中查看它时,我每次都会得到相同的字段两次。其中之一将被称为

some_field

另一个将被调用

some_field.keyword

这种行为从何而来,两者有什么区别?

PS:其中一个是可聚合的(不确定那是什么意思)而另一个(没有关键字)不是。

最佳答案

更新: 一个简短的答案是这样的类型:文本被分析,这意味着它在存储时被分解成不同的词,并允许自由文本搜索字段中的一个或多个单词。 .keyword 字段采用相同的输入并保留为一个大字符串,这意味着它可以聚合,并且您可以对其使用通配符搜索。可聚合意味着您可以在 elasticsearch 的聚合中使用它,如果您熟悉它,它类似于 sql group by。在 Kibana 中,您可能会使用带有聚合的 .keyword 字段来计算不同的值等。


请看这篇关于text vs. keyword的文章.

简而言之:自从 Elasticsearch 5.0 string 类型被 textkeyword 类型取代。从那时起,当您不指定显式映射时,对于带有字符串的简单文档:

{
"some_field": "string value"
}

将创建以下动态映射:

{
"some_field": {
"type" "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}

As a consequence, it will both be possible to perform full-text search on some_field, and keyword search and aggregations using the some_field.keyword field.

我希望这能回答您的问题。

关于elasticsearch - field 和 field.keyword 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48869795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com