2014-11-26 16 views
5

che sto cercando un modo per ottenere i dati da "ieri" invece di:elasticsearch intervallo di date arrivare ieri

"range" : { 
    "price" : { 
     "gt" : "2014-11-24", 
     "lt" : "2014-11-26" 
    } 
} 

Vorrei qualcosa di simile:

"range" : { 
    "price" : { 
     "eq" : "2014-11-25" 
    } 
} 

Qualcuno pensa che potrebbe essere possibile?

Sto pensando a qualcosa di simile:

"range" : { 
    "price" : { 
     "gt" : "now-2d", 
     "lt" : "now" 
    } 
} 

Ma mi piacerebbe ottenere i dati da 12:00 alle 12:00

risposta

8

Prova questo:

"query": { 
    "range": { 
     "price": { 
     "gt": "now-1d/d", 
     "lt": "now/d" 
     } 
    } 
    } 
+1

questo sarebbe restituisce null. Dovrebbe essere 'now-2d/d' invece di' 1'; oppure potresti cambiare 'gt' in' gte' per risolverlo. – Xiao

2

La risposta di @ andrei-stefan è il modo per farlo, ma volevo aggiungere un piccolo esempio in più per le altre persone h facendo questa domanda

Se si voleva ottenere i dati di ieri 12:00-13:00, piuttosto che tutto il giorno, si potrebbe fare con un po 'di più la data di matematica:

"query": { 
    "range": { 
     "price": { 
     "gt": "now-1d/d+12h", 
     "lt": "now-1d/d+13h" 
     } 
    } 
    } 

https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#date-math

+0

Sono grato per il tuo esempio esteso: stavo creando una query per il periodo "now-2d/d" a "now-1d/d", ma ricevevo le partite alle 16:00 del giorno prima - si scopre che i dati è in GMT, ma la query viene eseguita in PST. Con "now-2d/d + 8h" e "now-1d/d + 8h", sto ottenendo esattamente i dati corretti. Dovrò ricordare a me stesso di cambiare 8h a 7h quando inizia l'ora legale, naturalmente. –

+0

^Correzione: non è che i dati siano GMT, ma tale arrotondamento giornaliero (/ d) utilizza 00:00 UTC. –

+0

@DaveLand Questo è un buon punto. È utile mantenere le date in UTC nei database e sul lato server, quindi trasformarle in ora locale quando arrivano al client. Kibana mostra cose in orario locale, anche se è UTC in elastico. – Mnebuerquo

Problemi correlati