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; } } }
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)); }