关键字或日期类型字段的范围查询?

问题描述:

我作为关键字或日期类型字段的范围查询?

{ 
    "query": { 
     "range" : { 
      "time" : { 
       "gte" : "2016-10-10 11:00:00.000", 
       "lte" : "2016-10-10 12:00:00.000" 
      } 
     } 
    } 
} 

keyworddate式哪个更好哪个存储插入时间的字段,如2016-10-10 11:00:00.000,我试过keyword类型和date类型,它们都符合range的要求,这样的?

对于您的情况,由于您正在存储日期,所以确实使用date数据类型更合适。在内部,这些日期将被存储为long时间戳,并且范围查询将在其上运行,以便您有一个数字范围

keyword旨在用于字符串数据。如果您将这些日期存储为关键字,那么您的日期将被存储为未分析的字符串,并且将在其上运行的范围查询将其视为词法范围

如果您需要在这些日期之外创建date_histogram汇总,则keyword类型将不会执行此操作。所以你应该更喜欢date数据类型。