Articole elastice și fusuri orare

Am un index cu un câmp de timp al cărui valori sunt:

time: 2012-06-02T12:25:27+02:00

Apoi execut urmatoarea interogare:

{
  "sort": {
    "time": "desc"
  },
  "query": {
    "query_string": {
      "query": "time:[2012-6-2T12:24:00Z TO 2012-6-2T12:26:00Z]",
      "default_operator": "AND"
    }
  },
  "size": 30
}

Aceasta este returnarea a 0 hit-uri, dar dacă schimb de șir de interogare cu 2 ore, atunci se potrivește cu înregistrările în acel moment. Deci, sunt destul de sigur că aceasta este o problemă cu fusul orar. Citind documentele pe care le-am găsit pot pune o "time_zone": 2 în interogare, dar .... unde ar trebui să fie plasat în interogarea anterioară? Am incercat mai multe optiuni, dar nu am putut face sa functioneze.

0

1 răspunsuri

Probabil că ați văzut parametrul "time_zone" în aspectul datei histogramei, care este diferit de această interogare. Interogarea query_string nu acceptă un parametru time_zone. Cred că cea mai simplă soluție aici ar fi înlocuirea "Z" cu fusul orar dorit în interogarea dvs.:

{
  "sort": {
    "time": "desc"
  },
  "query": {
    "query_string": {
      "query": "time:[2012-6-2T12:24:00+02:00 TO 2012-6-2T12:26:00+02:00]",
      "default_operator": "AND"
    }
  },
  "size": 30
}
0
adăugat
Există posibilitatea de a specifica fusul orar în afara interogării sau într-o altă parte a șirului de interogare decât căutarea time: ? Întreabă pentru că vreau să păstrez capacitatea de a interoga oricare din multele formate de date posibile împotriva câmpului time (de exemplu, yyyyDDD'T'HHmmssZ , HHmmss. SSSZ , etc), dar apoi să le specificați toate în ceasul de timp +02: 00 .
adăugat autor canary_in_the_data_mine, sursa