라이브러리

[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 태그는 필요에 따라 조절할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색