在响应结构中分组不同类型的结果

时间:2016-03-03 21:30:01

标签: elasticsearch types grouping response

我需要为客户端中的某些数据构建一个可搜索的索引,每个类型在结果列表中都有自己的部分,并且只显示前5个项目。让我们说我们有3种不同类型媒体的出版物:DVD,CD和LP(乙烯基)。所有都有艺术家,标题,长度,曲目数量,类型等属性。

我们说我用3种类型索引内容,称为dvd,cd和lp。

当我进行http://localhost:9200/myindex/_search?q=name:Metall *

之类的搜索时

我希望得到一个响应,每个组有5个项目,组中的匹配总数,也许是人类可读的组名。可能看起来像这样:

{  
   "groups":{  
      "dvd":{  
         "name":"DVD",
         "results":65,
         "content":[  
            {  
               "id":1,
               "title":"blablabla"
            },
            {  
               "id":4,
               "title":"nananana"
            },
            {  
               "id":5,
               "title":"foo bar"
            }
         ]
      },
      "cd":{  
         "name":"CD",
         "results":31,
         "content":[  
            {  
               "id":43,
               "title":"lalala"
            }
         ]
      },
      "lp":{  
         "name":"Vinyl",
         "results":5,
         "content":[  
            {  
               "id":543,
               "title":"buaaah"
            }
         ]
      }
   }
}

是否可能以任何方式调整elasticsearch以输出这样的结果?

或者我应该在移动客户端进行分组,发出3个单独的请求,还是在elasticSearch面前提供服务,这会产生单独的请求并将它们组合到我建议的结构中?

0 个答案:

没有答案