ElasticSearch按日期时间字段搜索

时间:2013-04-04 10:29:01

标签: datetime elasticsearch

我需要搜索多个字段,包括日期时间字段。

搜索查询可能包含也可能不包含以不同格式指定的日期值:

  • 4月4日
  • 2013年4月4日
  • 2013年4月4日

查询sting可能包含一些无法转换为日期时间的术语。

有什么办法可以使用弹性搜索来支持这类查询吗?

1 个答案:

答案 0 :(得分:3)

这是我在调查期间挖掘的内容:

我使用弹性搜索的multi_field功能。我为日期类型功能添加了字符串可搜索文本字段。

以下是我用于日期类型字段的映射:

   "TransactionDate":{
      "type":"multi_field",
      "fields":{
         "TransactionDate":{
            "type":"date",
            "format":"YYYY-MM-dd HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd",
            "index":"not_analyzed"
         },
         "formatted":{
            "type":"string",
            "index":"analyzed"
         }
      }
   }

然后,我可以使用TransactionDate.formatted字段来搜索使用文本字段的查询。

希望能帮到别人。