我在elasticsearch 6.XX 中导入了一个索引,并创建了两个类型,名称分别为field 和field.keyword。
field.keyword 是可聚合的,而 field 不是。
两者都是字符串类型。
它们之间有什么区别?
我在elasticsearch 6.XX 中导入了一个索引,并创建了两个类型,名称分别为field 和field.keyword。
field.keyword 是可聚合的,而 field 不是。
两者都是字符串类型。
它们之间有什么区别?
字符串类型前段时间已弃用,并且 Elasticsearch 6.x 不能向后兼容来处理它们。
如何迁移:在大多数情况下,迁移应该非常简单。过去被映射为分析字符串的字段
{
"foo": {
"type" "string",
"index": "analyzed"
}
}
现在需要映射为文本字段:
{
"foo": {
"type" "text",
"index": true
}
}
以及过去被映射为 not_analyzed 字符串的字段
{
"foo": {
"type" "string",
"index": "not_analyzed"
}
}
现在需要映射为关键字字段:
{
"foo": {
"type" "keyword",
"index": true
}
}
有关完整说明,请参阅此内容: https ://www.elastic.co/blog/strings-are-dead-long-live-strings