这可能是一个愚蠢的问题,但我无法通过datetime字段过滤弹性搜索索引。我一定错过了什么。
这是映射:
"created_at": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
这就是我得到的:
{
"_index": "myindex",
"_type": "myindextype",
"_id": "21c",
"_score": 1,
"_source": {
"code": "21c",
"name": "hello",
...
"created_at": "2015-04-30T13:10:50.107769Z"
}
},
使用此查询:
"query": {
"filtered": {
"query": {},
"filter": {
"range": {
"created_at": {
"gte": "2015-05-02T13:10:50.107769Z"
"format": "strict_date_optional_time||epoch_millis"
}}}}}
我希望过滤掉上面的条目。但它什么也没有回报。
时间格式有问题吗?因为它直接来自Django Rest Framework的serializers。他们声称它是ISO 8601格式,而elasticsearch声称same。
我还希望通过像“2015-05-02”这样的简单日期来过滤它们。
我被困住了。提前谢谢。
编辑:无论我写入范围过滤器,都无关紧要。它总是返回所有条目。
答案 0 :(得分:1)
这很有用。我尝试了很多不同的东西,在某些方面迷失了方向。
{
"query": {
"filtered": {
"filter": {
"range": {
"created_at": {
"gte": "2015-05-02"
}
}
}
}
}
}