라이브러리
[PHP] SolrQuery::addHighlightField - hl.fl에 매핑
PHP SolrQuery::addHighlightField
SolrQuery::addHighlightField은 SOLR에서 검색 결과를 강조하는 기능을 제공합니다. 이 기능을 사용하면 검색 결과에서 특정 필드의 값을 강조하여 검색 결과를 더 유용하게 만들 수 있습니다.
예제
#hostingforum.kr
php
// SOLR 서버 주소
$solrServer = 'http://localhost:8983/solr';
// SOLR 인덱스 이름
$indexName = 'myindex';
// SOLR 쿼리
$query = 'php';
// SOLR 필드 이름
$highlightField = 'title';
// SOLR 강조 설정
$highlight = array(
'fields' => array($highlightField),
'requireFieldMatch' => 'false',
'fragmentSize' => 100,
'numberFragments' => 3,
'hl.simple.pre' => '',
'hl.simple.post' => ''
);
// SOLR 클라이언트 생성
$client = new SolrClient(array(
'host' => $solrServer,
'port' => 8983
));
// SOLR 쿼리 생성
$query = new SolrQuery();
$query->setQuery($query);
$query->addHighlightField($highlightField, $highlight);
// SOLR 검색 결과 가져오기
$result = $client->search($query);
// 검색 결과 출력
foreach ($result->getResponse()->getResponse()->getDocuments() as $doc) {
echo '제목: ' . $doc->getFieldValue($highlightField) . "
";
echo '강조된 제목: ' . $result->getResponse()->getResponse()->getHighlighting()->getFieldHighlight($highlightField)->get($doc->getId()) . "
";
}
설명
* `$solrServer` 변수에는 SOLR 서버 주소가 저장됩니다.
* `$indexName` 변수에는 SOLR 인덱스 이름이 저장됩니다.
* `$query` 변수에는 검색할 쿼리가 저장됩니다.
* `$highlightField` 변수에는 강조할 필드 이름이 저장됩니다.
* `$highlight` 변수에는 강조 설정이 저장됩니다. 이 설정에는 필드 이름, 강조를 위한 필드 매칭 여부, 강조된 텍스트의 크기, 강조된 텍스트의 수, 강조 전/후에 추가할 HTML 태그가 포함됩니다.
* `$client` 변수에는 SOLR 클라이언트가 생성됩니다.
* `$query` 변수에는 SOLR 쿼리가 생성됩니다.
* `$result` 변수에는 SOLR 검색 결과가 가져옵니다.
* 검색 결과를 출력하기 위해 `$result` 변수의 `getResponse()` 메서드를 호출하여 검색 결과를 가져옵니다. 검색 결과를 출력하기 위해 `getResponse()->getResponse()->getDocuments()` 메서드를 호출하여 문서 목록을 가져옵니다. 각 문서의 필드 값을 출력하기 위해 `getFieldValue()` 메서드를 호출합니다. 강조된 텍스트를 출력하기 위해 `$result` 변수의 `getResponse()->getResponse()->getHighlighting()` 메서드를 호출하여 강조된 텍스트를 가져옵니다. 강조된 텍스트를 출력하기 위해 `getFieldHighlight()` 메서드를 호출하여 강조된 텍스트를 가져옵니다. 강조된 텍스트를 출력하기 위해 `get()` 메서드를 호출하여 강조된 텍스트를 가져옵니다.
참고
* SOLR 서버 주소와 인덱스 이름은 실제로 사용하는 SOLR 서버 주소와 인덱스 이름으로 대체해야 합니다.
* 강조된 텍스트의 크기와 수는 필요에 따라 조절할 수 있습니다.
* 강조된 텍스트의 전/후에 추가할 HTML 태그는 필요에 따라 조절할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.