라이브러리
[PHP] SolrQuery::addExpandFilterQuery - 기본 필터 쿼리를 재정의하고 기본 그룹에 포함할 문서를 결정합니다.
PHP에서 SolrQuery::addExpandFilterQuery 사용하기
SolrQuery::addExpandFilterQuery는 Solr 쿼리에서 확장 필터 쿼리 추가하는 메서드입니다. 확장 필터 쿼리는 기본 쿼리 결과에 추가로 필터링하는 쿼리입니다. 예를 들어, 기본 쿼리 결과가 100개가 있고, 확장 필터 쿼리 결과가 10개라면, 최종 결과는 10개가 됩니다.
사용 방법
SolrQuery::addExpandFilterQuery 메서드는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 필터 쿼리 문자열, 두 번째 매개변수는 필터 쿼리 이름입니다.
예제
#hostingforum.kr
php
use SolariumQueryTypeQueryQuery;
use SolariumQueryTypeQueryQueryInterface;
// Solr 클라이언트 인스턴스 생성
$client = new SolariumClient($config);
// 쿼리 인스턴스 생성
$query = $client->createSelect();
// 기본 쿼리 설정
$query->setQuery('키워드');
// 확장 필터 쿼리 설정
$query->addExpandFilterQuery('필터 쿼리', '필터 쿼리 이름');
// 쿼리 실행
$result = $client->query($query);
// 결과 출력
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
필터 쿼리 예제
#hostingforum.kr
php
// 필터 쿼리 설정
$query->addExpandFilterQuery('category:전자기기 AND price:10000', '필터 쿼리 이름');
필터 쿼리 이름 예제
#hostingforum.kr
php
// 필터 쿼리 이름 설정
$query->addExpandFilterQuery('category:전자기기 AND price:10000', '전자기기 필터');
필터 쿼리 결과 예제
#hostingforum.kr
php
// 필터 쿼리 결과 출력
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
필터 쿼리 결과가 없는 경우 예제
#hostingforum.kr
php
// 필터 쿼리 결과가 없는 경우 출력
if (empty($result->getDocuments())) {
echo "필터 쿼리 결과가 없습니다.
";
}
필터 쿼리 결과가 여러 개인 경우 예제
#hostingforum.kr
php
// 필터 쿼리 결과가 여러 개인 경우 출력
if (!empty($result->getDocuments())) {
echo "필터 쿼리 결과가 있습니다.
";
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
}
필터 쿼리 결과가 여러 개인 경우에 필터 쿼리 이름이 다른 경우 예제
#hostingforum.kr
php
// 필터 쿼리 결과가 여러 개인 경우 필터 쿼리 이름이 다른 경우 출력
if (!empty($result->getDocuments())) {
echo "필터 쿼리 결과가 있습니다.
";
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
foreach ($result->getExpandFilters() as $filter) {
echo $filter->getName() . "
";
}
}
필터 쿼리 결과가 여러 개인 경우에 필터 쿼리 이름이 다른 경우에 필터 쿼리 이름이 같은 경우 예제
#hostingforum.kr
php
// 필터 쿼리 결과가 여러 개인 경우 필터 쿼리 이름이 다른 경우 필터 쿼리 이름이 같은 경우 출력
if (!empty($result->getDocuments())) {
echo "필터 쿼리 결과가 있습니다.
";
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
foreach ($result->getExpandFilters() as $filter) {
if ($filter->getName() == '전자기기 필터') {
echo $filter->getName() . "
";
}
}
}
필터 쿼리 결과가 여러 개인 경우에 필터 쿼리 이름이 다른 경우에 필터 쿼리 이름이 같은 경우에 필터 쿼리 결과가 여러 개인 경우 예제
#hostingforum.kr
php
// 필터 쿼리 결과가 여러 개인 경우 필터 쿼리 이름이 다른 경우 필터 쿼리 이름이 같은 경우 필터 쿼리 결과가 여러 개인 경우 출력
if (!empty($result->getDocuments())) {
echo "필터 쿼리 결과가 있습니다.
";
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
foreach ($result->getExpandFilters() as $filter) {
if ($filter->getName() == '전자기기 필터') {
echo $filter->getName() . "
";
foreach ($result->getDocuments() as $document) {
echo $document->getId() . "
";
}
}
}
}
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.