라이브러리

[PHP] SolrQuery::addGroupQuery - 주어진 쿼리와 일치하는 문서를 그룹화할 수 있습니다.




PHP에서 SolrQuery::addGroupQuery


SolrQuery::addGroupQuery는 SOLR 쿼리에서 그룹 쿼리를 추가하는 메서드입니다. 이 메서드는 SOLR 쿼리에서 필드를 그룹화하고, 그룹의 필드 값을 필터링하는 데 사용됩니다.

예제


다음은 PHP에서 SolrQuery::addGroupQuery를 사용하는 예제입니다.

#hostingforum.kr
php

use SolariumQueryTypeSelectQueryQuery;

use SolariumQueryTypeSelectResultResult;



// SOLR 인덱스와 연결

$client = new SolariumClient([

    'url' => 'http://localhost:8983/solr',

]);



// SOLR 쿼리 생성

$query = $client->createSelect();



// 그룹 쿼리 추가

$query->addGroupQuery('group1', 'name', 'max');

$query->addGroupQuery('group2', 'age', 'min');



// 쿼리 실행

$result = $query->execute();



// 결과 출력

foreach ($result->getResults() as $document) {

    echo $document->getName() . ' - ' . $document->getAge() . "
";

}



그룹 쿼리 옵션


그룹 쿼리 옵션은 다음과 같습니다.

- `groupField`: 그룹 필드 이름
- `groupValue`: 그룹 필드 값
- `groupFacet`: 그룹 필드 facet 옵션 (예: `max`, `min`, `count`)
- `groupLimit`: 그룹 필드 제한 수

그룹 쿼리 예제


다음은 그룹 쿼리를 사용하는 예제입니다.

#hostingforum.kr
php

use SolariumQueryTypeSelectQueryQuery;

use SolariumQueryTypeSelectResultResult;



// SOLR 인덱스와 연결

$client = new SolariumClient([

    'url' => 'http://localhost:8983/solr',

]);



// SOLR 쿼리 생성

$query = $client->createSelect();



// 그룹 쿼리 추가

$query->addGroupQuery('group1', 'name', 'max', 10); // name 필드의 최대값 10개 그룹화



// 쿼리 실행

$result = $query->execute();



// 결과 출력

foreach ($result->getGroups() as $group) {

    echo $group->getField() . ' - ' . $group->getValue() . "
";

}



그룹 필터링


그룹 필터링은 그룹 필드 값을 필터링하는 데 사용됩니다. 예를 들어, `name` 필드의 최대값 10개 그룹화하고, 그룹 필드 값이 `John` 인 그룹만 필터링하는 경우 다음과 같이 사용할 수 있습니다.

#hostingforum.kr
php

use SolariumQueryTypeSelectQueryQuery;

use SolariumQueryTypeSelectResultResult;



// SOLR 인덱스와 연결

$client = new SolariumClient([

    'url' => 'http://localhost:8983/solr',

]);



// SOLR 쿼리 생성

$query = $client->createSelect();



// 그룹 쿼리 추가

$query->addGroupQuery('group1', 'name', 'max', 10);



// 그룹 필터링 추가

$query->addFilterQuery('group1_value', 'John');



// 쿼리 실행

$result = $query->execute();



// 결과 출력

foreach ($result->getGroups() as $group) {

    echo $group->getField() . ' - ' . $group->getValue() . "
";

}



이 예제에서는 `group1_value` 필터링을 사용하여 그룹 필드 값이 `John` 인 그룹만 필터링합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색