2012-09-27 71 views
1

鮮明的選擇我有這樣的CouchDB/elasticsearch設置。 CouchDB作爲存儲,用於搜索的elasticsearch。使用CouchDB和elasticsearch

我需要執行這個查詢,

select distinct name from table 
在這個 「表」

[ 
    {name:'david' ... more data}, 
    {name:'david' ... more data}, 
    {name:'alex' ... more data} 
    {name:'alex' ... more data} 
] 

得到這個:

['david', 'alex'] 

或本:

[ 
     {name:'david'}, 
     {name:'alex'} 
    ] 

或以任何形式,但明顯的查詢結果。

使用CouchDB的它可以通過這個來完成:

// map 
function(doc) { 
    emit(doc.name); 
} 

// reduce 
function(keys, values) { 
    return null; 
} 

但我想用elasticsearch做到這一點。網上有一些信息,但不清楚。

有人能指出我在正確的方向,實現我想要什麼?

回答

2

你可以把它在球場上name使用Terms Facet Query做。

+0

所以查詢看起來像這樣? { 「查詢」:{ 「MATCH_ALL」:{} }, 「面」:{ 「標籤」:{ 「術語」:{ 「場」: 「名字」, 「大小」 :10 }} } } 是 – Delta

+0

,如果你只想要10最頻繁出現的名字。如果你想要超過10個,你需要增加'size'參數的值。在頂層0或通過添加&SEARCH_TYPE =計數的網址: – imotov

+0

它不工作...它返回所有的數據庫記錄 – Delta