A terms query provides access to the indexed terms in a field. For details see: https://solr.apache.org/guide/the-terms-component.html.
Building a terms query
See the example code below.
Available options:
Name | Type | Default value | Description |
---|---|---|---|
fields | string | null | Comma separated list of fields |
lowerbound | string | null | Set the lowerbound term to start at |
lowerboundinclude | boolean | null | |
mincount | int | null | |
maxcount | int | null | |
prefix | string | null | Set prefix for terms |
regex | string | null | Set regex to restrict terms |
regexflags | string | null | Comma separated list of regex flags |
limit | int | null | If <0 all terms are included |
upperbound | string | null | |
upperboundinclude | boolean | null | |
raw | boolean | null | Return raw characters of the term |
sort | string | null | Set sorting of the terms ('count' or 'index') |
Executing a terms query
Use the terms
method of the client to execute the query object. See the example code below.
Result of a terms query
The result of a terms query offers direct access to the resulting terms, and can also be iterated.
Example
<?php
require_once(__DIR__.'/init.php');
htmlHeader();
// create a client instance
$client = new Solarium\Client($adapter, $eventDispatcher, $config);
// get a terms query instance
$query = $client->createTerms();
$query->setFields('features,name');
$query->setLowerbound('i');
// this executes the query and returns the result
$resultset = $client->terms($query);
// display terms
foreach ($resultset as $field => $terms) {
echo '<h3>' . $field . '</h3>';
foreach ($terms as $term => $count) {
echo $term . ' (' . $count . ')<br/>';
}
echo '<hr/>';
}
htmlFooter();