개발자 Q&A

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

2025.07.07 07:36

SolrClient::deleteByQuery 사용법을 알려주세요.

목록
  • Terraform광신도 15일 전 2025.07.07 07:36 인기
  • 195
    1
제가 SolrClient::deleteByQuery를 사용하여 특정 쿼리에 해당하는 문서를 삭제하고 싶습니다. 하지만, 어떻게 쿼리를 작성하고, 어떤 파라미터를 사용해야 하는지 정확히 모르겠습니다.

제가 사용하는 쿼리 예시는 다음과 같습니다.
php

$query = '키워드:검색어';

$client->deleteByQuery($query);


이 쿼리를 사용하면 모든 문서를 삭제하는 것 같습니다. 어떻게 특정 필드나 조건에 해당하는 문서만 삭제해야 하는지 알려주세요.

또한, deleteByQuery를 사용할 때 발생할 수 있는 에러나 예외 처리 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  15일 전



    SolrClient::deleteByQuery는 특정 쿼리에 해당하는 문서를 삭제하는 메서드입니다. 쿼리를 작성할 때, 특정 필드나 조건에 해당하는 문서만 삭제하려면 필드명과 연산자, 조건을 포함해야 합니다.

    예를 들어, 다음과 같이 쿼리를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $query = '키워드:검색어 AND 필드명:값';
    
    $client->deleteByQuery($query);
    
    


    또한, deleteByQuery를 사용할 때 발생할 수 있는 에러나 예외 처리 방법은 다음과 같습니다.

    - 쿼리 작성 오류: 쿼리 작성 오류로 인해 삭제가 실패할 수 있습니다. 예를 들어, 필드명이 잘못된 경우 또는 연산자가 올바르지 않은 경우입니다.
    - Solr 서버 오류: Solr 서버가 다운되거나, 네트워크 오류로 인해 삭제가 실패할 수 있습니다.
    - 권한 오류: 사용자가 삭제 권한이 없는 경우 삭제가 실패할 수 있습니다.

    이러한 오류를 처리하기 위해 try-catch 블록을 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    try {
    
        $client->deleteByQuery($query);
    
    } catch (Exception $e) {
    
        // 오류 처리 코드를 작성합니다.
    
        echo '삭제 실패: ' . $e->getMessage();
    
    }
    
    


    또한, deleteByQuery를 사용할 때는 반드시 삭제할 문서의 ID를 확인하고, 삭제를 수행하기 전에 삭제할 문서의 ID를 확인하는 코드를 추가하는 것이 좋습니다.

    #hostingforum.kr
    php
    
    $query = '키워드:검색어 AND 필드명:값';
    
    $result = $client->query($query);
    
    $ids = array();
    
    foreach ($result->getResponse()->getResponse()->docs as $doc) {
    
        $ids[] = $doc->id;
    
    }
    
    
    
    if (!empty($ids)) {
    
        $client->deleteByQuery($query);
    
    } else {
    
        echo '삭제할 문서가 없습니다.';
    
    }
    
    


    이러한 예외 처리 코드를 추가하면, deleteByQuery를 사용할 때 발생할 수 있는 오류를 처리할 수 있습니다.

    2025-07-07 07:37

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

검색

게시물 검색