在solr查詢中執行groupby之後,我有以下格式的響應。我使用的solr版本3.5在創建陣列時更改密鑰的名稱
"grouped":{
"channel_id":{
"matches":48,
"ngroups":26,
"groups":[{
"groupValue":"204",
"doclist":{"numFound":1,"start":0,"docs":[
{
"channel_name":"ZeeTv",
"channel_num":4,
"title":"The Name",
"channel_id":"204"
}},
{
"groupValue":"166",
"doclist":{"numFound":2,"start":0,"docs":[
{
"channel_name":"Sony",
"channel_num":2,
"title":"The Name",
"channel_id":"166",
{
"channel_name":"Sony",
"channel_num":2,
"title":"The Puzzle",
"channel_id":"166"
}}]}}
我正在在以下列方式的陣列響應:
for(var chl in data.grouped.channel_id.groups) {
config['playlist'].push(data.grouped.channel_id.groups[chl]['doclist']['docs']);
}
因此形成各groupValue
的單個陣列。數組的struture是:
"0"=>{"0"=>"value"},"1"=>{"0"=>"result1","1"=>"result2"}
但我想改變鍵名稱,即「0」,「1」,而創建一個數組,這樣我可以做config['playlist']['166']
檢查所有的groupValue
從響應從陣列中顯示此channel_id
。可以做到這一點,如果是這樣做。我期待下面:
"204"=>{"0"=>"value"},"166"=>{"0"=>"result1","1"=>"result2"}
而且如果可能的話可以Solr的查詢進行,使得在響應channel_num
來按升序排列,即第一個結果爲channel_num 2,然後4.我已經做groupby:channel_id
您的第二個代碼塊在Firefox之外是無效的javascript。此外,所有for-each循環均缺少'hasOwnProperty'檢查。 –
感謝第一個代碼塊爲我工作如預期 – user850234
您不應該在陣列上使用'for' ...'in'。使用'len = data.grouped.channel_id.groups.length;代替(var chl = 0; chl