键入关键字而不分析,有什么区别?

Han*_*nsa 8 elasticsearch

" 关键字 "字段类型与在Elasticsearch 中使用" not_analyzed "作为分析器的字段之间是否有任何区别?如果有一个,何时使用哪个?

Val*_*Val 23

中断更改文档中可以看出,keyword数据类型是ES 5中出现的一种新数据类型.它旨在用string字段替换字段"index": "not_analyzed".

所以在ES 1.x和2.x中,这个声明

"field": {
    "type": "string",
    "index": "not_analyzed"
}
Run Code Online (Sandbox Code Playgroud)

等同于ES 5中的此声明

"field": {
    "type": "keyword"
}
Run Code Online (Sandbox Code Playgroud)

同样,text数据类型将替换正常分析的字符串字段,因此在ES 1.x和2.x中,此声明

"field": {
    "type": "string"
}
Run Code Online (Sandbox Code Playgroud)

将等同于ES 5中的此声明

"field": {
    "type": "text"
}
Run Code Online (Sandbox Code Playgroud)

  • 已更新的重大更改链接:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html#_literal_string_literal_fields_replaced_by_literal_text_literal_literal_keyword_literal_fields (2认同)