函数名称:SolrQuery::getGroupMain()
适用版本:Solr 5.2.0及更高版本
函数说明:SolrQuery::getGroupMain()函数用于获取是否将分组结果作为主结果集返回。当启用分组时,可以使用此函数来确定是否将分组结果作为主结果集返回。
函数用法:
public function SolrQuery::getGroupMain(): bool
参数说明:此函数不接受任何参数。
返回值:返回一个布尔值,表示是否将分组结果作为主结果集返回。如果返回true,则表示分组结果作为主结果集返回;如果返回false,则表示分组结果不作为主结果集返回。
示例代码:
$query = new SolrQuery();
$query->setQuery('category:electronics');
$query->addGroupField('brand');
// 设置将分组结果作为主结果集返回
$query->setGroupMain(true);
// 执行查询
$response = $client->query($query);
// 获取分组结果作为主结果集的返回值
$groupMain = $query->getGroupMain();
// 输出分组结果
if ($groupMain) {
$groupedResults = $response->getGroupingResponse()->getGroupField('brand');
foreach ($groupedResults as $group => $result) {
echo 'Brand: ' . $group . PHP_EOL;
echo 'Number of documents: ' . $result->getNumFound() . PHP_EOL;
echo 'Documents:' . PHP_EOL;
foreach ($result as $doc) {
echo '- ' . $doc->id . PHP_EOL;
}
}
} else {
// 输出主结果集
$results = $response->getResponse()->response->docs;
foreach ($results as $doc) {
echo 'Document ID: ' . $doc->id . PHP_EOL;
echo 'Document Score: ' . $doc->score . PHP_EOL;
// 输出其他字段信息
}
}
在上面的示例中,我们创建了一个Solr查询对象,并设置了一个查询条件和一个分组字段。然后,我们使用setGroupMain()
函数将分组结果作为主结果集返回。最后,我们执行查询并根据getGroupMain()
函数的返回值来输出相应的结果。如果返回值为true,则输出分组结果;如果返回值为false,则输出主结果集。