Date

原文链接:

https://www.elastic.co/guide/en/elasticsearch/reference/5.4/date.html

译文链接:

http://www.apache.wiki/pages/editpage.action?pageId=10031175

贡献者:

张学ApacheCNApache中文网

JSON没有date这种数据类型, 所以elasticsearch中的date可以是以下形式:

  • 包含格式化日期的字符串,例如 “2015-01-01”或“2015/01/01 12:10:30”。
  • 代表milliseconds-since-the-epoch的长整型数。
  • 代表seconds-since-the-epoch的整型数。

在内部,日期将转换为UTC(如果指定了时区),并将其存储为表示milliseconds-since-the-epoch的长整型数。

日期格式可以自定义,但如果没有指定格式,则使用默认格式:

  1. "strict_date_optional_time||epoch_millis"

这意味着它将接受带有可选时间戳的日期,这些日期符合strict_date_optional_time或者milliseconds-since-the-epoch所支持的格式。

例如:

  1. PUT my_index
  2. {
  3. "mappings": {
  4. "my_type": {
  5. "properties": {
  6. "date": {
  7. "type": "date" #1
  8. }
  9. }
  10. }
  11. }
  12. }
  13. PUT my_index/my_type/1
  14. { "date": "2015-01-01" } #2
  15. PUT my_index/my_type/2
  16. { "date": "2015-01-01T12:10:30Z" } #3
  17. PUT my_index/my_type/3
  18. { "date": 1420070400001 } #4
  19. GET my_index/_search
  20. {
  21. "sort": { "date": "asc"} #5
  22. }

| 1 | 日期属性使用的默认格式。 | | 2 | 本文档使用纯文本。 | | 3 | 本文档包含了一段时间。 | | 4 | 本文档使用milliseconds-since-the-epoch. | | 5 | 请注意,返回的排序值全部以毫秒为单位。 |

多日期格式

可以使用||分隔多个格式 作为分隔符。 将依次尝试每种格式,直到找到匹配的格式。 第一个格式将用于将从时间的毫秒转换为字符串。

  1. PUT my_index
  2. {
  3. "mappings": {
  4. "my_type": {
  5. "properties": {
  6. "date": {
  7. "type": "date",
  8. "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
  9. }
  10. }
  11. }
  12. }
  13. }

date字段的参数

date字段接受以下参数:

| boost | 映射字段级查询时间提升。 接受一个浮点数,默认为1.0。 | | doc_values | 该字段是否应该以多列的方式存储在磁盘上,以便以后可以将其用于排序,聚合或脚本? 接受true(默认)或false。 | | format | 可以解析的日期格式。默认是strict_date_optional_time||epoch_millis。 | | locale | 由于月份没有一致的名字或者缩写,locale 一般应用在日期解析上。 默认为 ROOT locale, | | ignore_malformed | 如果为真,则格式错误的数字将被忽略。 如果为false(默认),格式错误的数字会引发异常并拒绝整个文档。 | | include_in_all | 字段值是否应包含在_all字段中? 接受真或假 如果index设置为false,或者如果父对象字段将include_in_all设置为false,则默认为false。 否则默认为true。 | | index | 应该可以搜索该字段吗? 接受true(默认)和false。 | | null_value | 接受一个配置格式的日期值作为替换任何显式空值的字段。 默认为null,这意味着该字段被视为丢失。 | | store | 字段值是否应与_source字段分开存储和检索。 接受truefalse(默认)。 |