2017-08-25 50 views
0

我試圖做與Elasticsearch日期數學的日期範圍查詢,它不返回任何結果:Elasticsearch QUERY_STRING帶有日期的數學

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

更改查詢,以包括實際日期沒有問題:「created_at: [2017年7月25日於2017年8月25日]」

我也嘗試瞭解決方法由QUERY_STRING與範圍查詢相結合,但沒有返回任何結果之一:

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

使用d吃的數學確實顯示正確的計數AGGS:

`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"} 
      ] 
     } 
    } 
}` 

是否與Elasticsearch QUERY_STRING查詢日期的數學工作?如果不是什麼是正確的解決方法?

回答

0

我認爲你有一個錯字資本 - m應該M[now-1M/d TO now/d+1d](資本是正確的在你的最後一個例子,這就是爲什麼它在那裏工作)。

+0

你是對的,但即使我把它改爲M,它仍然返回0結果。 query:{query_string:{query:「created_at:[now-1M/d TO now/d + 1d]」,default_operator:「AND」,analyzer:「my_text」} ....我試着玩幾個不同的30d和1Y的選項都可以工作,所以我猜這個月的數學計算有些問題。這兩個工作:「created_at:[now-30d/d TO now/d + 1d]」,「created_at:[now-1Yd/d TO now/d + 1d]」 – painbot