라이브러리
[PHP] SolrQuery::setFacet - 패싯 매개변수에 매핑합니다. 패싯팅을 활성화하거나 비활성화합니다.
SolrQuery::setFacet 메소드는 Apache Solr에서 facet 기능을 사용하여 데이터를 필터링하고 분석하는 데 사용됩니다. facet 기능은 검색 결과에서 데이터를 분류하고 필터링하는 데 사용됩니다.
facet 유형
SolrQuery::setFacet 메소드는 여러 유형의 facet를 지원합니다.
* field: 특정 필드를 facet로 사용합니다.
* query: 특정 쿼리를 facet로 사용합니다.
* range: 특정 범위 내의 데이터를 facet로 사용합니다.
* terms: 특정 필드의 단어를 facet로 사용합니다.
예제
아래 예제에서는 SolrQuery::setFacet 메소드를 사용하여 facet 기능을 사용하는 방법을 보여줍니다.
#hostingforum.kr
php
// SolrClient 인스턴스 생성
$client = new SolrClient(array(
'host' => 'localhost',
'port' => 8983,
'path' => '/solr/mycollection'
));
// 쿼리 생성
$query = new SolrQuery();
$query->setQuery('키워드');
$query->setFacet(true);
$query->setFacetField('category'); // facet 필드 지정
$query->setFacetQuery('category:카테고리1 OR category:카테고리2'); // facet 쿼리 지정
// facet 설정
$query->setFacetMinCount(1); // facet 최소 카운트 설정
$query->setFacetLimit(10); // facet 최대 카운트 설정
// 검색 실행
$result = $client->query($query);
// facet 결과 출력
foreach ($result->getResponse()->facet_counts->facet_fields->category as $field => $values) {
echo "facet 필드: $field
";
foreach ($values as $value => $count) {
echo " $value: $count
";
}
}
facet 필드 지정
facet 필드를 지정하려면 `setFacetField` 메소드를 사용합니다. 예제에서 `category` 필드를 facet 필드로 지정했습니다.
facet 쿼리 지정
facet 쿼리를 지정하려면 `setFacetQuery` 메소드를 사용합니다. 예제에서 `category:카테고리1 OR category:카테고리2` 쿼리를 facet 쿼리로 지정했습니다.
facet 최소 카운트 설정
facet 최소 카운트를 설정하려면 `setFacetMinCount` 메소드를 사용합니다. 예제에서 1을 facet 최소 카운트로 설정했습니다.
facet 최대 카운트 설정
facet 최대 카운트를 설정하려면 `setFacetLimit` 메소드를 사용합니다. 예제에서 10을 facet 최대 카운트로 설정했습니다.
facet 결과 출력
facet 결과를 출력하려면 facet 필드와 그 값의 카운트를 출력합니다. 예제에서 facet 필드와 그 값의 카운트를 출력했습니다.
참고
* Apache Solr 공식 문서:
* PHP Solr Client 공식 문서:
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.