“keyword”字段类型与在Elasticsearch中使用“not_analyzed”作为分析器的字段之间是否有任何区别?如果有,何时使用哪个?
答案 0 :(得分:23)
从breaking changes文档中可以看出,keyword
数据类型是ES 5中的新数据类型。它旨在用{{1}替换string
字段}}
所以在ES 1.x和2.x中,这个声明
"index": "not_analyzed"
等同于ES 5中的此声明
"field": {
"type": "string",
"index": "not_analyzed"
}
同样,"field": {
"type": "keyword"
}
数据类型将替换正常分析的字符串字段,因此在ES 1.x和2.x中,此声明
text
将等同于ES 5中的此声明
"field": {
"type": "string"
}