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');