0

FOSElasticaBundleで日付範囲検索してみる

$query = new MatchAll();

    $now = date('Y-m-d');

    $rangeLower = new Filtered(
        $query,
        new Range('visibleFrom', array(
            'gte' => $now
        ))
    );


    $rangeUpper = new Filtered(
        $query,
        new Range('visibleTo', array(
            'lte' => $now
        ))
    );

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



    $boolFilter = new \Elastica\Filter\Bool();

    $boolFilter->addMust(
        new \Elastica\Filter\Terms('place_id', array(
            $place_id
        ))
    );

    $query->setFilter($boolFilter);


    //$finder = $this->container->get('fos_elastica.finder.place.event');



    $res = $this->finder->find($query,10);

しかし、それは機能しません

    print_r($query->getQuery());


Elastica\Query\Filtered Object
(
[_params:protected] => Array
    (
        [query] => Elastica\Query\MatchAll Object
            (
                [_params:protected] => stdClass Object
                    (
                    )

                [_rawParams:protected] => Array
                    (
                    )

            )

        [filter] => Elastica\Filter\Range Object
            (
                [_fields:protected] => Array
                    (
                        [visibleTo] => Array
                            (
                                [lte] => 2016-01-05
                            )

                    )

                [_params:protected] => Array
                    (
                        [visibleTo] => Array
                            (
                                [lte] => 2016-01-05
                            )

                    )

                [_rawParams:protected] => Array
                    (
                    )

            )

    )

[_rawParams:protected] => Array
    (
    )

)

visibleFrom > $now および visibleTo < $now および place_id = $place_id の検索オブジェクトが必要です

ここにマッピング設定があります

     event:
        mappings:
          id:
              type : integer
          place_id:
              type : integer
          visibleFrom:
              type: date
          visibleTo:
              type: date
          dateStart:
              type: date
          dateEnd:
              type: date
        persistence:
            driver: orm
            model: Place\CalendarBundle\Entity\Event
            finder: ~
            provider: ~
            listener: ~
4

2 に答える 2