函数名称:SolrQuery::addFilterQuery()
适用版本:Solr 6.0.0 及以上版本
函数用法:该函数用于向Solr查询中添加过滤查询(Filter Query)。过滤查询是一种用于限制结果集的查询方式,它不会影响查询的相关性得分,通常用于对结果进行筛选或者添加额外的约束条件。
语法:
public SolrQuery SolrQuery::addFilterQuery(string $fq)
参数:
- $fq (string):过滤查询的字符串。可以是一个单独的查询字符串,也可以是多个查询字符串组成的数组。
返回值:
- SolrQuery:返回当前的SolrQuery对象,可以通过链式调用来添加多个过滤查询。
示例:
// 创建SolrQuery对象
$query = new SolrQuery();
$query->setQuery('lucene');
// 添加过滤查询
$query->addFilterQuery('category:books');
$query->addFilterQuery('price:[10 TO 100]');
// 执行查询
$result = $client->query($query);
// 处理查询结果
$response = $result->getResponse();
$totalResults = $response->response->numFound;
echo "Total results: " . $totalResults;
foreach ($response->response->docs as $doc) {
echo "ID: " . $doc->id . ", Title: " . $doc->title . "<br>";
}
上述示例中,我们首先创建了一个SolrQuery对象,并设置了主查询(setQuery)为'lucene'。然后,通过addFilterQuery方法,添加了两个过滤查询:'category:books'和'price:[10 TO 100]'。最后,我们执行查询并处理查询结果。
请注意,过滤查询可以使用Solr查询语法来指定不同的约束条件,例如字段匹配、范围查询等。在示例中,我们使用了字段匹配和范围查询作为过滤查询的示例。您可以根据自己的需求来灵活使用该函数。