symfonysolrsolarium

Symfony Solarium bundle datetime range


$client = $this->solr->getClient();
        $query = $client->createSelect();
        $facetSet = $query->getFacetSet();
        $facetSet->createFacetField('id')->setField('publication_year');

        $facet = $facetSet->createFacetRange('yearsranges');
        $facet->setField('publication_year');

        $facet->setStart( --MIN DATE VALUE-- );
        $facet->setGap( --I NEED TO MAKE RANGE OF 10 YEARS-- );
        $facet->setEnd( --NOW DATE TIME-- );

        $solrQuery = '*:*';

        $query->setQuery($solrQuery);
        $query->setRows(0);

        $data = $client->select($query)->getFacetSet()->getFacet('yearsranges');

        dump($data);
        die;

Let first ask you, if it is valid to make ranges of dates in solr facets "publication_year" field in solr collection. This date is actually a string in this format.

"2009-10-29T23:00:00Z"

Solution

  • Yes it's valid or just use a query filter:

      $createQuery->createFilterQuery('range')->setQuery('createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]');
    

    For a facet:

     $facet->createQuery('createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]');