我已经将索引导入了elasticsearch 6.X.X,并且创建了两种类型,名称分别为field和field.keyword。
field.keyword是可聚合的,而field不可。
两者都是字符串类型。
它们之间有什么区别?
答案 0 :(得分:2)
答案 1 :(得分:1)
字符串类型在一段时间之前已被弃用,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