라이브러리
[PHP] SolrQuery::getHighlightFields - Solr이 강조 표시된 스니펫을 생성해야 하는 모든 필드를 반환합니다.
PHP에서 SolrQuery::getHighlightFields 사용하기
SolrQuery::getHighlightFields는 SOLR에서 검색 결과를 하이라이트하는 필드를 지정하는 메서드입니다. 하이라이트는 검색 결과에서 중요한 단어를 강조하여 검색 결과를 더 읽기 쉽게 만듭니다.
예제
#hostingforum.kr
php
use SolariumClient;
use SolariumCoreQueryQueryInterface;
// SOLR 클라이언트 생성
$client = new Client();
// SOLR 인덱스 선택
$query = $client->createSelect();
$query->setQuery('php');
$query->setHighlight(true);
$query->addHighlightField('title', array('fragmentSize' => 100, 'numOfFragments' => 3));
// SOLR 검색 결과
$result = $query->execute();
// 하이라이트된 검색 결과 출력
foreach ($result->getDocuments() as $document) {
echo $document->getTitle() . "
";
echo $document->getHighlight('title') . "
";
}
하이라이트 옵션
SolrQuery::getHighlightFields에서 사용할 수 있는 옵션은 다음과 같습니다.
* `fragmentSize`: 하이라이트된 텍스트의 최대 길이입니다. 기본값은 100입니다.
* `numOfFragments`: 하이라이트된 텍스트의 최대 개수입니다. 기본값은 3입니다.
* `pre`: 하이라이트된 텍스트의 앞에 추가할 문자입니다. 기본값은 ``입니다.
* `post`: 하이라이트된 텍스트의 뒤에 추가할 문자입니다. 기본값은 ``입니다.
* `requireFieldMatch`: 하이라이트된 텍스트가 필드의 전체 내용과 일치해야 하는지 여부입니다. 기본값은 `true`입니다.
예제 (옵션 사용)
#hostingforum.kr
php
use SolariumClient;
use SolariumCoreQueryQueryInterface;
// SOLR 클라이언트 생성
$client = new Client();
// SOLR 인덱스 선택
$query = $client->createSelect();
$query->setQuery('php');
$query->setHighlight(true);
$query->addHighlightField('title', array(
'fragmentSize' => 50, // 하이라이트된 텍스트의 최대 길이
'numOfFragments' => 2, // 하이라이트된 텍스트의 최대 개수
'pre' => '', // 하이라이트된 텍스트의 앞에 추가할 문자
'post' => '', // 하이라이트된 텍스트의 뒤에 추가할 문자
'requireFieldMatch' => false // 하이라이트된 텍스트가 필드의 전체 내용과 일치해야 하는지 여부
));
// SOLR 검색 결과
$result = $query->execute();
// 하이라이트된 검색 결과 출력
foreach ($result->getDocuments() as $document) {
echo $document->getTitle() . "
";
echo $document->getHighlight('title') . "
";
}
이 예제에서는 `fragmentSize`, `numOfFragments`, `pre`, `post`, `requireFieldMatch` 옵션을 사용하여 하이라이트된 텍스트를 조정합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.