2012-11-19 120 views
1

我使用date_histogram api來獲取使用間隔(小時/天/周或月)的實際計數。另外我有一個功能,我遇到了麻煩,用戶可以通過輸入startDate和endDate(文本框)來過濾結果,這將使用字段時間戳進行查詢。那麼如何在使用date_histogram api或任何api時只查詢一個字段(即TIMESTAMP)來過濾結果,以便達到我的願望結果。在彈性搜索中過濾?

在SQL中,我將只使用between運算符來獲得結果,但從我讀過的內容來看,它們在Elastic Search(不確定)中沒有BETWEEN運算符。

我到目前爲止這個腳本:

curl 'http://anotherdomain.com:9200/myindex/_search?pretty=true' -d '{ 
       "query" : { 
        "filtered" : { 
        "filter" : { 
         "exists" : { 
          "field" : "adid" 
         } 
        }, 
        "query" : { 
         "query_string" : { 
          "fields" : [ 
          "adid", "imp" 
          ], 
          "query" : "525826 AND true" 
         } 
        } 

        } 
       }, 
       "facets" : { 
        "histo1":{ 
        "date_histogram":{ 
         "field":"timestamp", 
         "interval":"day" 
        } 
        } 
       } 
      }' 

回答

2

在elasticsearch你可以使用range查詢過濾器來實現這一點。

+1

一個例子本來不錯 – Adrian