라이브러리

[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 공식 문서:
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색