我有一个存储插入时间的字段,例如2016-10-10 11:00:00.000
,我尝试了keyword
类型和date
类型,它们都满足range
要求,例如
{
"query": {
"range" : {
"time" : {
"gte" : "2016-10-10 11:00:00.000",
"lte" : "2016-10-10 12:00:00.000"
}
}
}
}
keyword
和date
类型哪个更好?
答案 0 :(得分:3)
在您的情况下,由于您要存储日期,确实更适合使用date
数据类型。在内部,这些日期将存储为long
时间戳,范围查询将在其上运行,因此您有数值范围。
keyword
旨在用于字符串数据。如果您将这些日期存储为关键字,则您的日期将存储为未分析的字符串,并且将在其上运行的范围查询将其视为词汇范围。
如果您需要在这些日期之外创建date_histogram
汇总,keyword
类型将无法执行此操作。所以你绝对应该选择date
数据类型。