예제 #1
0
 protected function initialize_cluster($reply_set, $query, $config)
 {
     if (property_exists($reply_set, 'content') && property_exists($reply_set->content, 'cluster')) {
         $clustering_id = $this->get_meta()->get_cluster_id();
         $facet_helper = AfsFacetHelperRetriever::get_helper($clustering_id, $this->facets);
         $this->update_meta($facet_helper);
         foreach ($reply_set->content->cluster as $cluster) {
             $helper = new AfsClusterHelper($cluster, $this->get_meta(), $facet_helper, $query, $config);
             $this->clusters[$helper->get_id()] = $helper;
         }
     }
 }
예제 #2
0
 public function testClusterWithoutFacet()
 {
     $facet_id = 'marketing';
     $value_id = 'OP';
     $query = new AfsQuery();
     $input = json_decode('{
         "uri": "Catalog",
         "totalItems": 61,
         "totalItemsIsExact": true,
         "pageItems": 20,
         "firstPageItem": 1,
         "lastPageItem": 20,
         "durationMs": 6,
         "cluster": "marketing",
         "firstPaFId": 1,
         "lastPaFId": 1,
         "producer": "SEARCH",
         "totalItemsInClusters": 2,
         "nbClusters": 2
     }');
     $meta = new AfsMetaHelper($input);
     $input = json_decode('{
         "id": "' . $value_id . '",
         "totalItems": 6,
         "totalItemsIsExact": true,
         "pageItems": 1,
         "firstPageItem": 1,
         "lastPageItem": 1,
         "reply": [
             {
                 "docId": 64,
                 "uri": "166_en",
                 "title": [
                     {
                         "afs:t": "KwicString",
                         "text": "HTC Touch Diamond"
                     }
                 ],
                 "relevance": { "rank": 1 }
             }
         ]
     }');
     $config = new AfsHelperConfiguration();
     $helper = new AfsClusterHelper($input, $meta, null, $query, $config);
     $this->assertEquals($value_id, $helper->get_id());
     $this->assertEquals($value_id, $helper->get_label());
     $this->assertEquals(6, $helper->get_total_replies());
     $this->assertTrue($helper->has_reply());
     $this->assertEquals(1, $helper->get_nb_replies());
     $replies = $helper->get_replies();
     $this->assertEquals(1, count($replies));
     $reply = $replies[0];
     $this->assertEquals('166_en', $reply->get_uri());
     $query = $helper->get_query();
     $this->assertTrue($query->has_filter($facet_id, $value_id));
 }