2014-03-01 57 views
3

我有一個排序的elasticsearch直方圖聚合,按原樣正常工作。從Elasticsearch聚合的第一個和最後一個文檔返回字段

我需要從每個聚合存儲桶的第一個和最後一個文檔中返回一個字段。

當前查詢(紅寶石風格的語法):

{ 
    query: { 
    filtered: { 
     filter: { 
     bool: { 
      must: [ 
      { term: { some_id: 'something' } }, 
      { range: { 
       completed_at: { 
        gte: start, 
        lte: end 
       } 
       } 
      } 
      ] 
     } 
     }, 
     _cache: true, 
     _cache_key: "special-query" 
    } 
    }, 
    aggs: { 
    intervals: { 
     histogram: { 
     field: 'completed_at', 
     interval: 24.hours.to_i, 
     min_doc_count: 0, 
     order: { _key: 'asc' } 
     }, 
     aggs: { 
     start_at: { min: { field: 'completed_at' } }, 
     end_at: { max: { field: 'completed_at' } }, 
     price_stats: { extended_stats: { field: 'rate' } }, 
     } 
    } 
    } 
} 

我已經通過文件搜索和廣泛的一派,但無法找到任何解決方案。目前,我必須向數據庫發送第二個查詢以顯式獲取此字段的所有值,但我想將該功能轉入我的elasticsearch查詢中。

回答

6

你想返回每聚合權的結果嗎?

這就是所謂的現場崩潰,而不幸的是,尚未Elasticsearch可用,請參閱:https://github.com/elasticsearch/elasticsearch/issues/256

更新2014年9月

按@bpierce在下面的評論:現在Elasticsearch 1.3.x出來了,現場倒塌通過top_hits聚合可用。我目前正在用類似於這個查詢的方式使用它。

+0

這似乎是我正在尋找。可惜它沒有實現,我不得不繼續解決它與查詢數據庫。謝謝。 – Roganartu

+0

如果您不是百分百綁定到Elastichsearch,Solr DOES提供此功能。 https://wiki.apache.org/solr/FieldCollapsing –

+2

既然[Elasticsearch 1.3.x已發佈](http://www.elasticsearch.org/blog/elasticsearch-1-3-0-released/),現場通過'top_hits'聚合可以獲得摺疊。我目前正在用類似於這個查詢的方式使用它。 – bpeirce

相關問題