0
我一直在從自動生成的時間戳移動到映射的時間戳,並且查詢不再工作。當使用自動生成的時間戳,我是能夠執行這種查詢:在映射的時間戳上過濾
FilterBuilder filter = FilterBuilders.rangeFilter("_timestamp").from(zonedDateTime.toLocalDate().toString()).to(zonedDateTime.plusHours(1).toLocalDate().toString());
而且通過最新表述,如「現在-1H」會的工作。現在,我已經介紹了以下映射:
"collections": {
"_timestamp": {
"enabled": true,
"path": "my_date",
"ignore_missing": false
},
"properties": {
"author": {
"type": "string",
"index": "not_analyzed"
},
"name": {
"type": "string",
"analyzer": "lowercase"
},
"my_date": {
"type": "date"
}
}
}
我存儲my_date爲Unix紀元格式,我不能再查詢:
FilterBuilders.rangeFilter("_timestamp").from(zonedDateTime.toLocalDate().toString()).to(zonedDateTime.plusHours(1).toLocalDate().toString());
返回空的結果,而查詢
FilterBuilders.rangeFilter("my_date").from(zonedDateTime.toLocalDate().toString()).to(zonedDateTime.plusHours(1).toLocalDate().toString());
與異常
from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"match_all":{}},"filter":{"range":{"my_date":{"from":"2015-09-04T19:52:15.001+01:00","to":"2015-09-04T21:52:15.001+01:00","include_lower":true,"include_upper":true}}}}}}]]]; nested: NumberFormatException[For input string: "2015-09-04T19:52:15.001+01:00"];
失敗
它看起來像我可以做的唯一的查詢是通過在my_date上使用時間戳的數字值。有什麼更好的,我可以希望?
我剛剛錯誤地複製了一部分映射,my_date在屬性節點內正確。我已經更新了這個問題,還注意到如果我使用數字時間戳查詢my_date屬性,它可以正常工作 – Edmondo1984
更新了答案。 – imotov
您正在使用哪個版本的ES?您正在運行的查詢是爲我返回的ParseException – Edmondo1984