0

solrでは、データベースの「name」フィールドで一意の値を取得する必要があります。

そのため、私はグループ化について読み、desoredesultを取得します

{
  "responseHeader":{
    "status":0,
    "QTime":16,
    "params":{
      "indent":"true",
      "q":"name:И*",
      "group.field":"name",
      "group":"true",
      "wt":"json"}},
  "grouped":{
    "name":{
      "matches":2231,
      "groups":[{
          "groupValue":"ИВАН",
          "doclist":{"numFound":1144,"start":0,"docs":[
              {
                "obshtina":"ПЛОВДИВ",
                "phone":"032/670309",
                "timestamp":"2013-03-04T08:43:53.553Z"}]
          }},
        {
          "groupValue":"ИЛИЯ",
          "doclist":{"numFound":177,"start":0,"docs":[
              {
                "obshtina":"БРЕЗОВО",
                "phone":"(3191)2265",
                ..............................

最初のgroupValueを取得します

var  str = xmlhttp.responseText;

                alert (str); //here everything is OK - i get the respone correctly
                var rsp = JSON.parse(str);
                //var rsp = JSON.parse(xmlhttp.responseText);
                var srcAutoComp  = new Array();


alert ("grouped:" + rsp.grouped.name.groups[0].groupValue);

しかし、いくら読んでも、solrからの応答ではグループの数を見つけることができないため、cicleですべてのgoupvaluesを取得できるようです。

f

4

1 に答える 1

2

group.ngroupsを使用して、グループの総数を取得できます。
すべてのグループ値を取得するには、ファセット制限を-1に保ちながらフィールドでファセットを作成します。これにより、応答ですべての一意のグループ値を確実に取得できます。

于 2013-03-13T03:50:24.293 に答える