2017-03-09 2 views
1
$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; 

Lassen Sie sich zunächst fragen, ob es gültig ist Datumsbereiche in solr Facetten in solr Sammlung „PUBLICATION_YEAR“ Feld zu machen. Dieses Datum ist eigentlich eine Zeichenfolge in diesem Format.Symfony Solarium Bündel Datetime-Bereich

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

Antwort

4

Ja, es ist gültig oder benutzen Sie einfach einen Abfrage-Filter:

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

Für eine Facette:

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