Qdrant 포인트 삭제

Qdrant 포인트 삭제

Qdrant에서 포인트를 삭제하는 작업은 업데이트의 일부예요. 단건 삭제, 조건(필터) 기반 일괄 삭제, 그리고 컬렉션 전체 포인트 삭제까지 원하는 수준에 맞춰 처리할 수 있어요. 삭제는 검색 결과에서 즉시 반영됩니다.

출처: https://qdrant.tech/documentation/guides/delete-points/

단건 삭제

특정 ID의 포인트를 하나만 지울 때는 delete API에 ID를 넘겨요.

from qdrant_client import QdrantClient
client = QdrantClient(":memory:")

client.delete(
    collection_name="my_collection",
    points_selector=[1, 2, 3],   # ID 목록
)

필터 기반 일괄 삭제

페이로드 조건을 만족하는 모든 포인트를 지우려면 필터를 사용해요. 예를 들어 archivedtrue인 포인트를 전부 제거할 수 있어요.

from qdrant_client.models import Filter, FieldCondition, MatchValue

client.delete(
    collection_name="my_collection",
    points_selector=Filter(
        must=[
            FieldCondition(key="archived", match=MatchValue(value=True)),
        ]
    ),
)

필터 기반 삭제는 삭제할 조건이 명확한 경우 유용해요. 다만 조건이 넓을수록 많은 포인트가 지워지므로, 운영 환경에서는 대상 개수를 먼저 count로 확인하고 실행하는 걸 권장해요.

컬렉션 전체 삭제

모든 포인트를 지우되 컬렉션 구조는 유지하고 싶다면 delete_collection 대신 포인트 전체 삭제를 쓸 수 있어요. 컬렉션을 완전히 없애려면 delete_collection을 사용해요.

# 포인트만 전부 삭제
client.delete(
    collection_name="my_collection",
    points_selector=Filter(must=[]),  # 조건 없는 필터 = 전체
)

전체 삭제 뒤에도 컬렉션과 기존 인덱스 설정은 유지되므로, 이어서 같은 스키마로 데이터를 다시 채워 넣기 좋아요.

더 알아보기

  • 포인트 CRUD 전체 흐름은 concepts/points 문서에서 이어서 보세요.
  • 파라미터·조건 필터 구문은 concepts/filtering 문서에서 확인하세요.