라이브러리

[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를 사용할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색