개발자 Q&A

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

2025.07.15 08:04

SolrClient::deleteById 메서드 사용에 대한 질문

목록
  • RESTful도령 5일 전 2025.07.15 08:04
  • 18
    1
안녕하세요 선생님. SolrClient::deleteById 메서드를 사용하여 특정 ID의 문서를 삭제하려고 하는데, 아래와 같은 코드를 작성했는데요.

php

$client = new SolrClient($config);

$response = $client->deleteById('my_collection', '12345');



여기서 '12345'는 삭제하고 싶은 문서의 ID입니다. 하지만 이 코드를 실행했을 때, Solr 서버에 문서가 삭제되지 않고, 다음과 같은 오류 메시지가 나타납니다.

`Error 400: Invalid id`

이 오류 메시지는 Solr 서버가 삭제하려는 ID가 유효하지 않다고 생각합니다. 그러나 제가 작성한 ID '12345'는 실제로 존재하는 ID입니다.

선생님, 이 오류를 해결하려면 어떻게 해야 할까요? SolrClient::deleteById 메서드의 ID를 삭제하려는 문서의 ID로 설정했을 때, 왜 오류가 발생하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  5일 전



    SolrClient::deleteById 메서드의 ID를 삭제하려는 문서의 ID로 설정했을 때 오류가 발생하는 이유는, ID를 삭제하려는 문서의 ID로 설정했을 때, 문서의 ID가 실제로 존재하는지 확인하지 않고 바로 삭제를 시도하기 때문입니다.

    해결 방법은 다음과 같습니다.

    1. 삭제하려는 문서의 ID가 실제로 존재하는지 확인하는 코드를 추가합니다.
    2. 삭제하려는 문서의 ID가 실제로 존재하는지 확인한 후, 삭제를 시도합니다.

    코드 예시:

    #hostingforum.kr
    php
    
    $client = new SolrClient($config);
    
    $response = $client->query('my_collection', 'id:' . '12345');
    
    $docs = $response->getResponse()->docs;
    
    
    
    if (count($docs) > 0) {
    
        $response = $client->deleteById('my_collection', '12345');
    
    } else {
    
        echo "해당 ID의 문서가 존재하지 않습니다.";
    
    }
    
    


    위 코드는 삭제하려는 문서의 ID가 실제로 존재하는지 확인한 후, 삭제를 시도합니다. 만약 삭제하려는 문서의 ID가 실제로 존재하지 않으면, "해당 ID의 문서가 존재하지 않습니다."라는 메시지를 출력합니다.

    2025-07-15 08:05

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

검색

게시물 검색