개발자 Q&A

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

2025.06.20 07:02

SolrClient::deleteByQuery 사용 시 Query DSL에 대해 궁금합니다.

목록
  • 프로그래밍도깨비 오래 전 2025.06.20 07:02 인기
  • 227
    1
저는 SolrClient::deleteByQuery 함수를 사용하여 특정 쿼리를 삭제하고자 합니다. 그러나 Query DSL에 대해 잘 이해하지 못하여 삭제 대상과 관련된 필드 이름을 어떻게 지정해야 하는지 모르겠습니다.

예를 들어, 다음과 같은 쿼리가 있습니다.

sql

DELETE FROM products WHERE category='전자제품' AND price>10000



이 쿼리에서 'category' 필드는 지정된 필드이지만 'price>10000' 부분은 어떻게 지정해야 하는지 궁금합니다.

SolrClient::deleteByQuery 함수의 쿼리 부분에 어떻게 해당 조건을 지정해야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    SolrClient::deleteByQuery 함수의 쿼리 부분에서 필드 이름과 조건을 지정하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $query = "category:전자제품 AND price:[* TO 10000]";
    
    


    위 쿼리에서 '*'은 0을 의미하며, price 필드의 값이 10000 이하인 문서를 삭제합니다.

    또한, Solr의 Query DSL은 다음과 같은 연산자를 지원합니다.

    - `AND` : 조건을 연결합니다.
    - `OR` : 조건을 연결합니다.
    - `NOT` : 조건을 반대합니다.
    - `:` : 필드 이름과 값의 매칭을 지정합니다.
    - `[]` : 범위 조건을 지정합니다.
    - `()` : 우선순위를 지정합니다.

    위 쿼리에서 `category:전자제품`은 category 필드의 값이 '전자제품'인 문서를 삭제하고, `price:[* TO 10000]`은 price 필드의 값이 10000 이하인 문서를 삭제합니다.

    #hostingforum.kr
    php
    
    $client->deleteByQuery($query);
    
    


    위 코드는 SolrClient::deleteByQuery 함수를 사용하여 쿼리 부분에 지정된 조건에 따라 문서를 삭제합니다.

    2025-06-20 07:03

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

검색

게시물 검색