【发布时间】:2018-06-25 22:03:45
【问题描述】:
我在elasticsearch 6.X.X 中导入了一个索引,并创建了两个类型,名称为field 和field.keyword。
field.keyword 是可聚合的,而 field 不是。
两者都是字符串类型。
它们有什么区别?
【问题讨论】:
标签: elasticsearch elasticsearch-6
我在elasticsearch 6.X.X 中导入了一个索引,并创建了两个类型,名称为field 和field.keyword。
field.keyword 是可聚合的,而 field 不是。
两者都是字符串类型。
它们有什么区别?
【问题讨论】:
标签: elasticsearch elasticsearch-6
【讨论】:
字符串类型前段时间已弃用,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
【讨论】: