
SolrQuery::getHighlightHighlightMultiTerm 메서드를 사용하여 멀티 터미널 하이라이트를 구현할 때, 하이라이트 필드 설정을 해야 합니다.
하이라이트 필드 설정을 위해, Solr의 schema.xml 파일에 하이라이트 필드를 추가해야 합니다. 예를 들어, "description" 필드에 하이라이트를 적용하고 싶다면, schema.xml 파일에 다음과 같이 추가할 수 있습니다.
#hostingforum.kr
xml
위의 설정에서, "multiTermOperator" 속성을 "OR"로 설정하면, 하이라이트가 제대로 작동합니다.
하이라이트 필드를 설정한 후, SolrQuery::getHighlightHighlightMultiTerm 메서드를 사용하여 하이라이트를 적용할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$query = new SolrQuery();
$query->addHighlightField('description');
$query->setHighlightSnippetsSize(1);
$query->setHighlightRequireFieldMatch(true);
$query->setHighlightMultiTerm(true);
$result = $client->query($query);
위의 예제에서, "description" 필드에 하이라이트를 적용하고, 하이라이트의 크기를 1로 설정하고, 하이라이트가 필드와 일치해야 하도록 설정했습니다.
또한, 하이라이트를 적용하는 방법에 대한 자세한 예제는 다음과 같습니다.
#hostingforum.kr
php
$query = new SolrQuery();
$query->addHighlightField('description');
$query->setHighlightSnippetsSize(1);
$query->setHighlightRequireFieldMatch(true);
$query->setHighlightMultiTerm(true);
$result = $client->query($query);
foreach ($result->getResponse()->getResponse()->getDocuments() as $document) {
$highlight = $document->getHighlight();
foreach ($highlight as $field => $snippets) {
echo "Field: $field, Snippets: " . implode(", ", $snippets) . "n";
}
}
위의 예제에서, 하이라이트를 적용한 문서를 반복하여, 하이라이트 필드와 하이라이트 스니펫을 출력합니다.
2025-05-14 20:47