2017-08-25 3 views
0

Ich versuche, einen Datumsbereich Abfrage mit Datumsberechnungen in Elasticsearch zu tun, und es ist die Rückkehr keine Ergebnisse:Elasticsearch query_string mit Datum Mathe

`query: { 
    bool: { 
     must: { 
      query_string: { 
       query: "created_at:[now-1m/d TO now/d+1d]", default_operator: "AND", analyzer: "my_text"} 
      } 
     } 
    } 
}` 

die Abfrage ändert aktuelles Datum enthält funktioniert: „created_at: [2017.07.25 TO 2017.08.25]“

ich habe auch versucht, eine Abhilfe durch eine query_string mit einer Reihe Abfrage kombinieren, aber das ergab keine Ergebnisse entweder:

`query: { 
    bool: { 
     must: [ 
      {query_string: {query: "", default_operator: "AND", analyzer: "my_text"}}, 
      {range: {"created_at"=>{from: "now-1m/d", to: "now/d+1d"}}}] 
     } 
    } 
}` 

Verwenden von d ate Mathe der richtigen Zählungen in aggs besagt:

`aggs: { 
    created_at: { 
     date_range: { 
      field: "created_at", keyed: true, ranges: [ 
       {from: "now/d", to: "now/d+1d", key: "Today"}, 
       {from: "now-1d/d", to: "now/d+1d", key: "In the last day"}, 
       {from: "now-7d/d", to: "now/d+1d", key: "In the last week"}, 
       {from: "now-1M/d", to: "now/d+1d", key: "In the last month"} 
      ] 
     } 
    } 
}` 

Does Datum Mathe Arbeit mit Elasticsearch query_string Abfrage? Und wenn nicht, was ist der richtige Workaround?

Antwort

0

Ich denke, Ihnen eine Kapitalisierung Tippfehler haben - mM sein sollte: [now-1M/d TO now/d+1d] (Großschreibung in Ihrem letzten Beispiel ist richtig, das ist, warum es funktioniert dort).

+0

Sie haben Recht, aber selbst wenn ich es in ein M ändere, gibt es immer noch 0 Ergebnisse. query: {query_string: {query: "created_at: [jetzt-1M/d bis jetzt/d + 1d]", default_operator: "AND", analyzer: "my_text"} .... Ich habe versucht, mit ein paar anderen herumzuspielen Optionen sowohl 30d als auch 1Y funktionieren, also denke ich, es gibt ein Problem mit Monatsdatum Mathe. Beide funktionieren: "created_at: [now-30d/d bis jetzt/d + 1d]", "created_at: [jetzt-1Yd/d bis jetzt/d + 1d]" – painbot

Verwandte Themen