2.1.5.1.4-facet-range.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. require(__DIR__.'/init.php');
  3. htmlHeader();
  4. // create a client instance
  5. $client = new Solarium\Client($config);
  6. // get a select query instance
  7. $query = $client->createSelect();
  8. // get the facetset component
  9. $facetSet = $query->getFacetSet();
  10. // create a facet field instance and set options
  11. $facet = $facetSet->createFacetRange('priceranges');
  12. $facet->setField('price');
  13. $facet->setStart(1);
  14. $facet->setGap(100);
  15. $facet->setEnd(1000);
  16. // this executes the query and returns the result
  17. $resultset = $client->select($query);
  18. // display the total number of documents found by solr
  19. echo 'NumFound: '.$resultset->getNumFound();
  20. // display facet counts
  21. echo '<hr/>Facet ranges:<br/>';
  22. $facet = $resultset->getFacetSet()->getFacet('priceranges');
  23. foreach ($facet as $range => $count) {
  24. echo $range . ' to ' . ($range + 100) . ' [' . $count . ']<br/>';
  25. }
  26. // show documents using the resultset iterator
  27. foreach ($resultset as $document) {
  28. echo '<hr/><table>';
  29. echo '<tr><th>id</th><td>' . $document->id . '</td></tr>';
  30. echo '<tr><th>name</th><td>' . $document->name . '</td></tr>';
  31. echo '<tr><th>price</th><td>' . $document->price . '</td></tr>';
  32. echo '</table>';
  33. }
  34. htmlFooter();