개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.18 11:39

SolrQuery::getHighlightSnippets에 대한 질문

목록
  • 뷰매니아 1일 전 2025.03.18 11:39
  • 10
    1
SolrQuery::getHighlightSnippets을 사용할 때, highlightSnippets를 2개 이상 지정해도 첫 번째 highlightSnippets만 적용되는 이유를 알고 싶습니다.

제가 현재 프로젝트에서 SolrQuery::getHighlightSnippets을 사용하여 문서의 특정 단락을 강조하려하고 있습니다. 하지만, highlightSnippets를 2개 이상 지정해도 첫 번째 highlightSnippets만 적용되는 것을 알게되었습니다.

이러한 현상을 해결하기 위해, 이 메서드의 동작 원리를 이해하고 싶습니다.

예를 들어, 다음과 같은 코드를 사용하였을 때, 두 번째 highlightSnippets가 적용되지 않는 이유를 알고 싶습니다.

php

$query = new SolrQuery();

$query->setHighlight('title');

$query->addHighlightField('title', array('fragmenter' => 'gap_policy', 'snippets' => 2));

$query->addHighlightField('title', array('fragmenter' => 'regex', 'snippets' => 3));



위 코드를 사용하였을 때, 두 번째 highlightSnippets가 적용되지 않는 이유를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    SolrQuery::getHighlightSnippets을 사용할 때, highlightSnippets를 2개 이상 지정해도 첫 번째 highlightSnippets만 적용되는 이유는 SolrQuery::addHighlightField 메서드가 오버라이딩되기 때문입니다.

    SolrQuery::addHighlightField 메서드는 highlightSnippets를 1개만 허용합니다. 따라서 두 번째 highlightSnippets가 적용되지 않는 것입니다.

    해결 방법은 두 번째 highlightSnippets를 다른 필드에 지정하는 것입니다.

    예를 들어, 다음과 같은 코드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $query = new SolrQuery();
    
    $query->setHighlight('title');
    
    $query->addHighlightField('title', array('fragmenter' => 'gap_policy', 'snippets' => 2));
    
    $query->addHighlightField('subtitle', array('fragmenter' => 'regex', 'snippets' => 3));
    
    


    이 코드를 사용하면 두 번째 highlightSnippets가 subtitle 필드에 적용됩니다.

    2025-03-18 11:40

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 4,807건 / 24 페이지

검색

게시물 검색