我的elasticsearch有数据,尤其是日期类似的东西:
{ "startTime": { "type": "string", "format": "yyyy/MM/dd", "index": "analyzed", "analyzer": "keyword" } }
我正在添加一个日期范围选择器,并希望使用所选日期来查询elasticsearch以获取所选范围内的startTime数据.我不确定如何将此查询构造为elasticsearch,或者它是否可以使用这是一个字符串字段(尽管我可以改变它).
有人能帮我一下吗?
您的字段是字符串,格式属性将被忽略.您应该更改映射并使用date
类型.看看这里有弹性搜索中可用的核心类型.
我会使用过滤器而不是查询.它将被缓存,因此更快.以下是过去7天的示例:
{ "filter" : { "range" : { "PublishTime" : { "from" : "20130505T000000", "to" : "20131105T235959" } } } }
请注意,如果您使用这样的过滤器,那么整天都将使用相同的过滤器,因此您可以充分利用缓存.