For a description of the Solr StatsComponent see https://solr.apache.org/guide/the-stats-component.html.
Options
| Name | Type | Default value | Description |
|---|---|---|---|
| field | string | null | Field to create stats for |
| facet | boolean | null | Return sub-results for values within the facet |
Example
<?php
require_once __DIR__.'/init.php';
htmlHeader();
// create a client instance
$client = new Solarium\Client($adapter, $eventDispatcher, $config);
// get a select query instance
$query = $client->createSelect();
$query->setRows(0);
// add stats settings
$stats = $query->getStats();
$stats->addFacet('inStock');
$stats->createField('popularity');
$stats->createField('price')->addFacet('price')->addFacet('popularity');
// this executes the query and returns the result
$resultset = $client->select($query);
$statsResult = $resultset->getStats();
// display the stats results
foreach ($statsResult as $field) {
echo '<h1>'.$field->getName().'</h1>';
echo 'Min: '.$field->getMin().'<br/>';
echo 'Max: '.$field->getMax().'<br/>';
echo 'Sum: '.$field->getSum().'<br/>';
echo 'Count: '.$field->getCount().'<br/>';
echo 'Missing: '.$field->getMissing().'<br/>';
echo 'SumOfSquares: '.$field->getSumOfSquares().'<br/>';
echo 'Mean: '.$field->getMean().'<br/>';
echo 'Stddev: '.$field->getStddev().'<br/>';
echo '<h2>Field facets</h2>';
foreach ($field->getFacets() as $facetName => $facet) {
echo '<h3>Facet '.$facetName.'</h3>';
foreach ($facet as $facetStats) {
echo '<h4>Value: '.$facetStats->getValue().'</h4>';
echo 'Min: '.$facetStats->getMin().'<br/>';
echo 'Max: '.$facetStats->getMax().'<br/>';
echo 'Sum: '.$facetStats->getSum().'<br/>';
echo 'Count: '.$facetStats->getCount().'<br/>';
echo 'Missing: '.$facetStats->getMissing().'<br/>';
echo 'SumOfSquares: '.$facetStats->getSumOfSquares().'<br/>';
echo 'Mean: '.$facetStats->getMean().'<br/>';
echo 'Stddev: '.$facetStats->getStddev().'<br/>';
}
}
echo '<hr/>';
}
htmlFooter();
Local parameters can be used to request a subset of the supported statistics.
$stats->createField('{!min=true max=true mean=true}popularity');
Some statistics are not computed by default in Solr. You can request them via local parameters.
/* Percentiles */
$stats->createField('{!percentiles="99,99.9,99.99"}popularity');
// ...
$field->getPercentiles();
/* The set of all distinct values */
$stats->createField('{!distinctValues=true}popularity');
// ...
$field->getDistinctValues();
/* The exact number of distinct values */
$stats->createField('{!countDistinct=true}popularity');
// ...
$field->getCountDistinct();
/* A statistical approximation of the number of distinct values */
$stats->createField('{!cardinality=0.3}popularity');
// ...
$field->getCardinality();
This overrides the default set of statistics. Explicitly add any of the default statistics you also want computed.
$stats->createField('{!min=true max=true percentiles="99,99.9,99.99"}popularity');