Elasticsearch索引及字段命名规范

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的命名规范。了解其命名规范可以事先确定其数据源中相关数据库的命名规范,避免不必要的转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值