
SolrQuery::getGroupFacet 메소드를 사용하여 그룹별 facet를 조회하는 방법은 다음과 같습니다.
1. `getGroupFacet` 메소드를 사용하여 facet 필드를 지정합니다.
#hostingforum.kr
php
$query->getGroupFacet('facet_field');
2. facet 필드에 대한 필터링 조건을 지정합니다.
#hostingforum.kr
php
$query->getGroupFacet('facet_field')->setFilter('facet_filter');
3. facet 필드에 대한 필터링 조건을 지정할 때, 여러 필터링 조건을 지정할 수 있습니다.
#hostingforum.kr
php
$query->getGroupFacet('facet_field')->setFilter('facet_filter1, facet_filter2');
4. facet 필드에 대한 필터링 조건을 지정할 때, 필터링 조건을 지정하지 않으면 facet 필드에 대한 모든 문서가 포함됩니다.
5. facet 필드에 대한 결과를 조회할 때, facet 필드에 대한 결과를 지정할 수 있습니다.
#hostingforum.kr
php
$query->getGroupFacet('facet_field')->setResult('facet_result');
6. facet 필드에 대한 결과를 조회할 때, facet 필드에 대한 결과를 지정하지 않으면 facet 필드에 대한 기본 결과가 포함됩니다.
만약 여러 그룹에 속하는 문서가 여러 개 있는 경우, 각 그룹별로 facet를 조회할 수 있습니다.
예를 들어, 다음과 같은 문서가 있다고 가정해 보겠습니다.
| id | name | group |
| --- | --- | --- |
| 1 | 문서1 | 그룹A |
| 2 | 문서2 | 그룹A |
| 3 | 문서3 | 그룹B |
| 4 | 문서4 | 그룹B |
| 5 | 문서5 | 그룹C |
이 경우, `getGroupFacet` 메소드를 사용하여 facet 필드를 지정하고 facet 필드에 대한 필터링 조건을 지정하면, 각 그룹별로 facet를 조회할 수 있습니다.
예를 들어, 다음과 같이 facet 필드를 지정하고 facet 필드에 대한 필터링 조건을 지정할 수 있습니다.
#hostingforum.kr
php
$query->getGroupFacet('group')->setFilter('group:A, group:B, group:C');
이 경우, facet 필드에 대한 결과는 다음과 같습니다.
| group | count |
| --- | --- |
| 그룹A | 2 |
| 그룹B | 2 |
| 그룹C | 1 |
이러한 방법으로, 여러 그룹에 속하는 문서가 여러 개 있는 경우, 각 그룹별로 facet를 조회할 수 있습니다.
2025-03-08 19:37