2017-10-12 3 views
0

je un indice & type dans ElasticSearch qui a une cartographie sur le terrainTri par champ Date dans ElasticSearch

"data_received_on": { 
"type": "date", 
"format": "YYYY-MM-DD" 
}, 

Je dois obtenir les 10 nouveaux dossiers et j'ai environ 5000 dossiers qui est étalé sur la dernière 1 mois.

ie. Le champ date_received_on a des valeurs comprises entre 2017-09-01 et 2017-09-30.

Mais mon tri ne me donne pas les enregistrements dans le bon ordre quand je commande à cette date. Quand je fais une commande par un nombre ou un champ de chaîne, cela fonctionne bien, mais au moment où j'utilise un champ de date, il se comporte de façon imprévisible.

mon état de tri est simple

"sort" : { 
"data_received_on" : { 
"order" : "desc" 
} 
} 

Que dois-je faire différemment pour obtenir le champ de date en fonction de tri droit?

+0

S'il vous plaît modifier votre question pour montrer le résultat complet de GET/{INDEX}/{TYPE}/_ mapping .. J'ai eu des problèmes similaires à moi-même, mais il était généralement quand un champ de date a été cartographié par erreur comme une chaîne. Cela semble étrange. Est-ce qu'un autre filtrage est appliqué lorsque vous utilisez ce type? – Miek

+0

J'ai testé en 2.4.4 et 5.5.0 et vos configs et requêtes ont bien fonctionné. – sunkuet02

Répondre

1

J'ai trouvé le problème. La raison en était que mon format de date était AAAA-MM-JJ. Ça aurait dû être aaaa-MM-jj. Fixation qui a résolu le problème