0

我需要通过包括日期时间字段在内的多个字段进行搜索。

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

  • 4月4日
  • 2013 年 4 月 4 日
  • 2013-04-04

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

有什么方法可以使用弹性搜索来支持这种类型的查询?

4

1 回答 1

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使用文本字段来搜索查询的字段。

希望对其他人有所帮助。

于 2013-04-05T17:32:25.873 回答