
SolrQuery::setHighlightFragmenter 메서드의 파라미터는 Fragmenter 인스턴스를 받습니다. Fragmenter는 하이라이트를 생성할 때 사용되는 알고리즘을 정의합니다.
Solr에서 제공하는 기본 Fragmenter 인스턴스는 FragmenterFactory를 통해 생성할 수 있습니다.
예를 들어, 다음 코드는 FragmenterFactory를 사용하여 Fragmenter 인스턴스를 생성하고 setHighlightFragmenter 메서드에 전달하는 방법을 보여줍니다.
#hostingforum.kr
php
use SolariumQueryTypeSelectQueryQuery;
use SolariumQueryTypeSelectQueryFilterQuery;
use SolariumQueryTypeSelectQueryFilterHighlightFragmeneterFactory;
// Fragmenter 인스턴스 생성
$fragmenter = FragmenterFactory::create('regex', '/bw+b/');
// Query 인스턴스 생성
$query = new Query();
$query->setHighlightFragmenter($fragmenter);
// 하이라이트 생성
$result = $query->execute();
이 예제에서는 'regex' Fragmenter를 사용하여 하이라이트를 생성합니다. 'regex' Fragmenter는 정규표현식을 사용하여 하이라이트를 생성합니다.
이러한 Fragmenter 인스턴스를 setHighlightFragmenter 메서드에 전달하여 문서의 하이라이트를 생성할 수 있습니다.
또한, Fragmenter 인스턴스를 직접 구현하여 사용할 수도 있습니다.
예를 들어, 다음 코드는 Fragmenter 인스턴스를 직접 구현하여 사용하는 방법을 보여줍니다.
#hostingforum.kr
php
use SolariumQueryTypeSelectQueryQuery;
use SolariumQueryTypeSelectQueryFilterQuery;
use SolariumQueryTypeSelectQueryFilterHighlightFragmeneter;
class MyFragmenter extends Fragmenter
{
public function fragment($text)
{
// 하이라이트 생성 로직
return explode(' ', $text);
}
}
// Query 인스턴스 생성
$query = new Query();
$query->setHighlightFragmenter(new MyFragmenter());
// 하이라이트 생성
$result = $query->execute();
이 예제에서는 MyFragmenter 클래스를 직접 구현하여 Fragmenter 인스턴스를 생성하고 setHighlightFragmenter 메서드에 전달하는 방법을 보여줍니다.
이러한 Fragmenter 인스턴스를 setHighlightFragmenter 메서드에 전달하여 문서의 하이라이트를 생성할 수 있습니다.
이러한 방법을 통해 문서의 하이라이트를 생성할 수 있습니다.
2025-07-09 20:43