Skip to main content
 首页 » 编程设计

Elasticsearch索引及字段命名规范

2022年07月19日206lonelyxmas

Elasticsearch索引及字段命名规范

实际中使用Elasticsearch,首要需要考虑定义索引、映射以及字段等,本文总结下必要的命名规范。

索引

索引受文件系统的限制。仅可能为小写字母,不能下划线开头。同时需遵守下列规则:

  • 不能包括 , /, *, ?, ", <, >, |, 空格, 逗号, #
  • 7.0版本之前可以使用冒号:,但不建议使用并在7.0版本之后不再支持
  • 不能以这些字符 -, _, + 开头
  • 不能包括 . 或 …
  • 长度不能超过 255 个字符

以上这些命名限制是因为当Elasticsearch使用索引名称作为磁盘上的目录名称,这些名称必须符合不同操作系统的约定。
我猜想未来可能会放开这些限制,因为我们使用uuid关联索引放在磁盘上,而不使用索引名称。

类型

类型名称可以包括除了null的任何字符,不能以下划线开头。7.0版本之后不再支持类型,默认为_doc.

字段

对字段命名规范及不能完全使用空格。点号可以使用,但用于对象类型,举例:

"foo.bar.baz": "abc" 

相当于:

"foo": { 
  "bar": { 
    "baz": "abc" 
  } 
} 

“对象路径”必须是有效的。所以foo . . bar,这就产生了连锁反应,因为它不能解析到有效路径。类似的:

"foo.": { 
  "bar": { 
    "baz": "abc" 
  } 
} 

同样这个命名也是不容许的,因为以点号结尾会造成混淆。

路由

路由命名也是除了空的任何字符。问题是多个路由值传入查询字符串,使用逗号分隔,如:
?routing=foo,bar

如果路由值包含逗号,会造成路由值解析错误。

总结

本文简要描述了elasticsearch的命名规范。了解其命名规范可以事先确定其数据源中相关数据库的命名规范,避免不必要的转换。


本文参考链接:https://blog.csdn.net/neweastsun/article/details/95868716
阅读延展