
SolrQuery::getHighlightFields 함수를 사용하여 하이라이트 필드를 설정할 때 \"Unknown field\" 오류가 발생하는 이유는 두 가지입니다.
1. 필드명이 정확하지 않음: Solr 인덱스에 등록된 필드명과 일치하지 않는 필드명을 사용할 경우 오류가 발생합니다. 예를 들어, 인덱스에 \"name\" 필드가 있지만, 코드에서 \"names\" 필드를 사용할 경우 오류가 발생합니다.
2. 필드가 인덱스에 존재하지 않음: Solr 인덱스에 해당 필드가 존재하지 않는 경우 오류가 발생합니다. 예를 들어, 인덱스에 \"name\" 필드가 있지만, 코드에서 \"description\" 필드를 사용할 경우 오류가 발생합니다.
해결 방법은 다음과 같습니다.
1. 필드명 확인: 인덱스에 등록된 필드명을 확인하고, 코드에서 사용하는 필드명과 일치시킵니다.
2. 필드가 인덱스에 존재하는지 확인: 인덱스에 해당 필드가 존재하는지 확인하고, 존재하지 않는 경우 필드를 인덱스에 등록합니다.
예를 들어, 다음 코드를 사용할 때 오류가 발생한 경우, 인덱스에 \"name\" 필드와 \"description\" 필드가 존재하는지 확인하고, 존재하지 않는 경우 필드를 인덱스에 등록합니다.
php
$query = new SolrQuery();
$query->getHighlightFields()->addField('name');
$query->getHighlightFields()->addField('description');
인덱스에 필드를 등록하는 방법은 다음과 같습니다.
php
$solr = new SolrClient('http://localhost:8983/solr');
$solr->createField('name', 'string', true);
$solr->createField('description', 'string', true);
위 코드는 Solr 인덱스에 \"name\" 필드와 \"description\" 필드를 등록합니다.
2025-04-30 01:04