2

symfony2 で elasticsearch を使用してファセットクエリを実行する方法は?

私はクエリを実行でき、結果が得られました。動作します!

このクエリでは、結果をファセット化したいと思います。

4

2 に答える 2

7
  public function facetAction()
  {           
        // index
        $search = $this->get('fos_elastica.index.appellations.appellation');


        $query = new \Elastica\Query\MatchAll();

        $elasticaQuery = new \Elastica\Query();
        $elasticaQuery->setQuery($query);
        $elasticaQuery->setSize(550);

        $elasticaFacet = new \Elastica\Facet\Terms('regions');
        $elasticaFacet->setField('regions');
        $elasticaFacet->setSize(550);

        $elasticaFacet->setOrder('reverse_count');

        $elasticaQuery->addFacet($elasticaFacet);

        // ResultSet
        $elasticaResultSet = $search->search($elasticaQuery);

        // Get Facets
        $elasticaFacets = $elasticaResultSet->getFacets();

        foreach ($elasticaFacets['regions']['terms'] as $elasticaFacet) {

            $results[] = $elasticaFacet;
        }       

        return $this->container->get('templating')->renderResponse
        ('ApplicationGhvAppellationsBundle:Default:indexFacets.html.twig', array(
        'appellations' => $results
        ));
  }
于 2013-06-26T13:09:29.050 に答える