2014-11-25 94 views
0

有誰知道如何從範圍訂購聚合/方面桶到可預測的順序我是否將它們添加到方面的順序?ElasticSearch方面/聚合排序/訂購

當前1.4分支(可能還有舊的分支機構)通過「doc_count」命令桶不可預測。我希望能夠以預定義的順序輸出桶。

+0

你是什麼意思的預定義順序?請澄清你的要求。 – bittusarkar 2014-11-25 10:31:56

+0

我可以設置一個訂單,例如按照我請求的順序返回存儲桶,而不是通過「doc_count」 – user3169851 2014-11-25 10:38:19

+0

else命令它們,從而允許我將任意字段添加到將在存儲桶中返回的存儲桶,例如標籤或一些標識符,所以我可能會爲自己工作...... – user3169851 2014-11-25 10:42:39

回答

0

一個簡單的方法可能是在Elasticsearch的響應結束時對它們進行排序。另一種方式可能是按照術語排序(聚合的關鍵)。

更新:

如果您使用的日期範圍的聚集與查詢像下面那麼結果將在「3天前」,「昨天」,「今天」無論doc_count的時間順序自動地。

{ 
    "aggs" : { 
     "timerange" : { 
      "date_range" : { 
       "field" : "day", 
       "keyed" : true, 
       "ranges" : [ 
       { 
        "key": "today", 
        "from": "now/d" 
       } 
       , 
       { 
        "key": "yesterday", 
        "from": "now-1d/d", 
        "to": "now/d" 
       }, 
       { 
        "key": "3 days ago", 
        "from": "now-3d/d", 
        "to": "now-2d/d" 
       } 
       ] 
      } 
     } 
    } 
} 

如果你有興趣在日常的數據則Date histogram將更加方便。

+0

再次,這些是RANGE查詢。 – user3169851 2014-11-25 13:03:12

+0

我對原始答案進行了一些編輯。讓我知道,如果我正確理解你的問題 – 2014-11-26 07:50:05

+0

這是一個非常hacky的答案,總是期望鬥鍵可以排序,由於他們如何被標記,但無論如何感謝。我選擇在客戶端進行分類 – user3169851 2014-11-26 11:22:40