라이브러리

[PHP] SolrQuery::setHighlightFragmenter - 강조된 텍스트에 대한 텍스트 스니펫 생성기를 설정합니다.




PHP 에서 SolrQuery::setHighlightFragmenter


Apache Solr는 검색 엔진으로 사용되는 오픈 소스 검색 서버입니다. PHP에서 Solr를 사용하기 위해서는 SolrClient를 사용해야 합니다. SolrClient는 Solr와 통신하여 검색 결과를 가져올 수 있습니다.

SolrQuery::setHighlightFragmenter는 검색 결과를 하이라이트하는 방법을 지정하는 메서드입니다. 하이라이트는 검색 결과에서 중요한 단어를 강조하는 기능입니다.

예제


#hostingforum.kr
php

require_once 'vendor/autoload.php';



use SolariumClient;

use SolariumCoreQueryQueryInterface;

use SolariumQueryTypeQueryQuery;



// Solr 서버 주소

$solrServer = 'http://localhost:8983/solr';



// Solr 클라이언트 생성

$client = new Client($solrServer);



// 검색 쿼리 생성

$query = $client->createSelect();

$query->setQuery('PHP');

$query->setStart(0);

$query->setRows(10);



// 하이라이트 설정

$query->addHighlightingField('title');

$query->setHighlightFragmenter('regex', '/w+/');



// 검색 결과 가져오기

$result = $query->execute();



// 검색 결과 출력

foreach ($result->getDocuments() as $document) {

    echo $document->getTitle() . "
";

    echo $document->getHighlighting('title') . "
";

}



하이라이트 프래그먼터 종류


SolrQuery::setHighlightFragmenter에는 여러 종류의 프래그먼터가 있습니다.

* `regex`: 정규표현식을 사용하여 프래그먼트를 지정합니다. 예를 들어, `w+`은 단어를 프래그먼트로 지정합니다.
* `wordset`: 단어 셋을 사용하여 프래그먼트를 지정합니다. 예를 들어, `wordset:word1,word2,word3`은 word1, word2, word3를 프래그먼트로 지정합니다.
* `pattern`: 패턴을 사용하여 프래그먼트를 지정합니다. 예를 들어, `pattern:abc`은 abc를 프래그먼트로 지정합니다.

프래그먼트 옵션


프래그먼터 옵션은 하이라이트 프래그먼트의 형식을 지정합니다.

* `maxFragments`: 프래그먼트의 최대 개수입니다.
* `fragmentSize`: 프래그먼트의 크기입니다.
* `boundaryChars`: 프래그먼트의 경계 문자입니다.
* `regex`: 정규표현식을 사용하여 프래그먼트를 지정합니다.

예제 (프래그먼트 옵션)


#hostingforum.kr
php

$query->setHighlightFragmenter('regex', '/w+/', [

    'maxFragments' => 2,

    'fragmentSize' => 10,

    'boundaryChars' => '-',

]);



참고


SolrQuery::setHighlightFragmenter는 검색 결과를 하이라이트하는 방법을 지정하는 메서드입니다. 하이라이트 프래그먼터 종류와 프래그먼트 옵션을 사용하여 검색 결과를 하이라이트할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 151 페이지

검색

게시물 검색