라이브러리

[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 쿼리에서 사용할 수 있는 유용한 기능 중 하나입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 161 페이지

검색

게시물 검색