라이브러리
[PHP] SolrQuery::addFacetField - 패싯에 다른 필드를 추가합니다.
PHP에서 SolrQuery::addFacetField 사용하기
SolrQuery::addFacetField 메소드는 Solr 쿼리에서 facet 필드를 추가하는 데 사용됩니다. facet 필드는 쿼리 결과에서 필드를 그룹화하여 필드별로 결과를 필터링하는 데 사용됩니다.
# 예제 1: 기본적인 facet 필드 추가
#hostingforum.kr
php
use SolariumQueryTypeQueryQuery;
use SolariumQueryTypeQueryQueryFactory;
// Solr 클라이언트 생성
$client = new SolariumClient($config);
// 쿼리 생성
$query = $client->createQuery()->update();
// facet 필드 추가
$query->addFacetField('name');
// 쿼리 실행
$result = $client->query($query);
// facet 필드 결과 출력
foreach ($result->getFacets()->getName() as $facet) {
echo $facet->getName() . ': ' . $facet->getValue() . "
";
}
# 예제 2: facet 필드에 필터 추가
#hostingforum.kr
php
use SolariumQueryTypeQueryQuery;
use SolariumQueryTypeQueryQueryFactory;
// Solr 클라이언트 생성
$client = new SolariumClient($config);
// 쿼리 생성
$query = $client->createQuery()->update();
// facet 필드 추가
$query->addFacetField('name')
->setFacetMinCount(1) // facet 필드의 최소 카운트
->setFacetLimit(10) // facet 필드의 최대 결과 수
->setFacetOffset(0) // facet 필드의 시작 인덱스
->setFacetSort('index') // facet 필드의 정렬 방식
->setFacetSortOrder('asc') // facet 필드의 정렬 순서
->addFacetFilter('name:John') // facet 필드에 필터 추가
->addFacetFilter('age:30'); // facet 필드에 필터 추가
// 쿼리 실행
$result = $client->query($query);
// facet 필드 결과 출력
foreach ($result->getFacets()->getName() as $facet) {
echo $facet->getName() . ': ' . $facet->getValue() . "
";
}
# 예제 3: facet 필드에 필드별 카운트 추가
#hostingforum.kr
php
use SolariumQueryTypeQueryQuery;
use SolariumQueryTypeQueryQueryFactory;
// Solr 클라이언트 생성
$client = new SolariumClient($config);
// 쿼리 생성
$query = $client->createQuery()->update();
// facet 필드 추가
$query->addFacetField('name')
->setFacetMinCount(1) // facet 필드의 최소 카운트
->setFacetLimit(10) // facet 필드의 최대 결과 수
->setFacetOffset(0) // facet 필드의 시작 인덱스
->setFacetSort('index') // facet 필드의 정렬 방식
->setFacetSortOrder('asc') // facet 필드의 정렬 순서
->addFacetField('age'); // facet 필드에 필드별 카운트 추가
// 쿼리 실행
$result = $client->query($query);
// facet 필드 결과 출력
foreach ($result->getFacets()->getName() as $facet) {
echo $facet->getName() . ': ' . $facet->getValue() . "
";
}
foreach ($result->getFacets()->getAge() as $facet) {
echo $facet->getName() . ': ' . $facet->getValue() . "
";
}
위 예제는 facet 필드를 추가하고 필터를 추가하는 방법을 보여줍니다. facet 필드에 필드별 카운트를 추가하는 방법도 보여줍니다. facet 필드는 쿼리 결과에서 필드를 그룹화하여 필드별로 결과를 필터링하는 데 사용됩니다. facet 필드는 Solr 쿼리에서 사용할 수 있는 유용한 기능 중 하나입니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.