개발자 Q&A

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

2025.04.30 01:03

SolrQuery::getHighlightFields 오류 해결 방법을 알려주세요.

목록
  • 디버깅의신 12시간 전 2025.04.30 01:03 새글
  • 3
    1
제가 SolrQuery::getHighlightFields 함수를 사용하여 하이라이트 필드를 설정할 때 오류가 발생합니다. 오류 메시지는 "Unknown field" 이라고 나오는데, 이에 대한 원인은 무엇이며 해결 방법은 무엇이 있을까요?

예를 들어, 다음 코드를 사용할 때 오류가 발생합니다.

php

$query = new SolrQuery();

$query->getHighlightFields()->addField('name');

$query->getHighlightFields()->addField('description');



이 코드는 어떤 문제가 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12시간 전



    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

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

검색

게시물 검색