라이브러리
[PHP] SolrQuery::getHighlight - hl 매개변수의 상태를 반환합니다.
PHP에서 SolrQuery::getHighlight 사용하기
SolrQuery::getHighlight는 Solr의 Highlighting 기능을 사용하여 검색 결과에서 매칭된 텍스트를 강조하는 기능입니다. 이 기능을 사용하면 검색 결과에서 매칭된 텍스트를 강조하여 사용자에게 더 유용한 정보를 제공할 수 있습니다.
예제
아래 예제에서는 PHP의 SolrQuery::getHighlight를 사용하여 검색 결과에서 매칭된 텍스트를 강조하는 방법을 보여줍니다.
#hostingforum.kr
php
require_once 'vendor/autoload.php';
use SolariumClient;
use SolariumQueryTypeQueryQuery;
use SolariumQueryTypeQuerySelectQuery;
use SolariumQueryTypeQuerySelectHighlightHighlight;
use SolariumQueryTypeQuerySelectHighlightFragmenterSimpleFragmenter;
// Solr 클라이언트 생성
$client = new Client([
'url' => 'http://localhost:8983/solr',
'username' => 'solr',
'password' => 'solr',
]);
// Query 생성
$query = $client->createSelect();
$query->setQuery('php');
$query->addHighlightingField('name');
$query->setHighlightingFragmentSize(100);
$query->setHighlightingSnippets(1);
// Highlighting 설정
$highlight = $query->getHighlighting();
$highlight->setAlternateField('name');
$highlight->setFormat('html');
$highlight->setFragmenter(new SimpleFragmenter());
$highlight->setHighlightMultiTerm(true);
// Query 실행
$result = $client->query($query);
// 결과 출력
foreach ($result->getDocuments() as $document) {
echo "ID: " . $document->getId() . "
";
echo "Name: " . $document->getFieldValue('name') . "
";
echo "Highlighted Name: " . $document->getHighlighting('name') . "
";
echo "
";
}
설명
* SolrQuery::getHighlight를 사용하기 위해서는 Solr 클라이언트를 생성하고 Query를 생성해야 합니다.
* Query에 Highlighting을 설정하기 위해서는 `addHighlightingField` 메소드를 사용하여 Highlighting할 필드를 지정해야 합니다.
* Highlighting 설정에는 `setAlternateField` 메소드를 사용하여 대체 필드를 지정하고, `setFormat` 메소드를 사용하여 결과를 html로 출력할 수 있습니다.
* `setFragmenter` 메소드를 사용하여 텍스트를 강조할 때 사용할 Fragmenter를 지정할 수 있습니다.
* `setHighlightMultiTerm` 메소드를 사용하여 멀티 터미널 검색 결과를 강조할 수 있습니다.
* Query를 실행한 후, 결과를 출력하기 위해서는 `getDocuments` 메소드를 사용하여 결과를 가져와야 합니다.
* 결과를 출력할 때, `getFieldValue` 메소드를 사용하여 원본 필드 값을 가져오고, `getHighlighting` 메소드를 사용하여 강조된 필드 값을 가져올 수 있습니다.
참고
* SolrQuery::getHighlight는 Solr 4.10 이상에서 사용할 수 있습니다.
* Highlighting 설정은 Solr의 schema.xml 파일에서 지정할 수 있습니다.
* Fragmenter는 Solr의 Highlighting Fragmenter를 사용할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.