alle Ich benutze Es2.0 Version. Ich möchte mein LogDate-Feld nach dem Datumstyp sortieren.Sortierung nach Datum Feld mit Bereich Filter
Unten ist mein Mapping:
PUT test/_mapping/device
{
"device" : {
"_routing": {"required": true},
"properties" : {
"activityId" : {"type" : "long", "store" : true },
"userId":{"type":"long","store":true},
"calories":{"type":"float","store":true},
"description":{"type":"string","store":true},
"distance":{"type":"float","store":true},
"duration":{"type":"long","store":true},
"startTime":{"type": "date","format" : "yyyy-MM-dd HH:mm:ss"},
"endTime":{"type": "date","format" : "yyyy-MM-dd HH:mm:ss"},
"steps":{"type":"long","store":true},
"offset":{"type":"long","store":true},
"lightSleep":{"type":"long","store":true},
"deepSleep":{"type":"long","store":true},
"almostAwake":{"type":"long","store":true},
"s1":{"type":"long","store":true},
"s2":{"type":"long","store":true},
"s3":{"type":"long","store":true},
"s4":{"type":"long","store":true},
"s5":{"type":"long","store":true},
"s6":{"type":"long","store":true},
"s7":{"type":"long","store":true},
"s8":{"type":"long","store":true},
"year":{"type":"long","store":true},
"month":{"type":"long","store":true},
"activityType":{"type":"string","store":true},
"logDate":{"type": "date","format" : "yyyy-MM-dd",
"index": "not_analyzed"},
"createdTime":{"type": "date","format" : "yyyy-MM-dd HH:mm:ss"}
}
}
}
und meine Frage ist, dass ich auf bestimmten Datumsbereich LogDate Feld sortieren möchten.
GET test/device/_search
{
"size": 500,
"sort": [
{
"logDate": {
"order": "asc"
}
}
],
"fields": [
"logDate"
],
"query": {
"bool": {
"must": [
{
"match": {
"userId": "305"
}
},{
"range": {
"logDate":
{
"from": "2016-01-25",
"to":"2016-01-31"
}
}
}
]
}
}
}
Es zeigt mir nicht wie erwartet output.It mich 25-01 bis 28-02 zeigt das heißt, es ist nicht analyzinf Monat. Bitte Jungs helfen mir aus, ich bin seit letzter Nacht am ti geschlagen. Thanku sehr viel.
Dank ... aber ich habe versucht, es auch mit lte & gte –
ich noch einen Blick über Ihre Anfrage hatte und die Antwort aktualisiert - sieht aus wie 'filtered' Abfrage könnte besser sein für das, was Sie versuchen zu erreichen . Da ES nicht ** von ** und ** bis ** als Optionen für "Bereich" query/filter hat, sollten Sie bei 'lte' und' gte' bleiben. –
gefilterte Abfrage wurde veraltet https://www.elastic.co/blog/better-query-execution-coming-elasticsearch-2-0 – Rahul