2
$mainQuery = new \Elastica\Query\BoolQuery();
$rangeFilter = new Filtered(
$mainQuery,
   new Range('price', array(
         'gte' => $min,
         'lte' => $max
    ))
  );
$data = $finder->search($rangeFilter);

在我的控制器操作中,我使用上面的代码来过滤 $min、$max(传递给此控制器的变量)的价格之间的弹性搜索数据。不知何故,返回给我的数据不是我的查询的正确结果。

我是否使用错误的方法来实现 FOSElasticaBundle 方法。此外,如果有人可以分享一些关于如何使用 symfony2 的 elasticsearch 或如何使用 FOSElasticBundle 进行查询的链接或教程,那将有很大帮助。

4

1 回答 1

2

我是这样做的...

 $boolQuery= new  Elastica\Filter\Bool();
        $boolQuery->addMust(new Range('created_at', array(
            'gte' => Util::convertDate($dataSearch['fechaInicial']),
            'lte' => Util::convertDate($dataSearch['fechafinal'])
        )));
        $result= $this->finder->find($boolQuery));

这个对我有用!这里有更多细节! https://openclassrooms.com/forum/sujet/foselasticabundle-1

于 2015-12-07T18:01:30.937 回答