/////

HNSW 벡터 검색의 메타데이터 필터링 실패 모드: 사전·사후 필터링, 선택도와 Recall 경계

메타데이터 필터를 만족하는 문서가 충분한데도 벡터 검색 결과가 k개보다 적거나, 가까운 적합 문서를 놓칠 수 있다. 원인은 필터를 적용하는 시점과 HNSW 그래프를 탐색하는 방식이 다르기 때문이다. 특히 벡터 검색 후 필터링 의 결과 부족과 필터 조건을 반영한 그래프 탐색 의 recall 저하는 구분해서 진단해야 한다. (qdrant.tech)

/////

Summary#

메타데이터 필터를 만족하는 문서가 충분한데도 벡터 검색 결과가 k개보다 적거나, 가까운 적합 문서를 놓칠 수 있다. 원인은 필터를 적용하는 시점과 HNSW 그래프를 탐색하는 방식이 다르기 때문이다. 특히 벡터 검색 후 필터링의 결과 부족과 필터 조건을 반영한 그래프 탐색의 recall 저하는 구분해서 진단해야 한다. (qdrant.tech)

Key Points#

  • 사후 필터링의 결과 부족: 먼저 얻은 벡터 상위 후보에서 조건에 맞지 않는 문서를 버리면, 전체 데이터에는 적합 문서가 k개 이상 있어도 반환 결과는 k개 미만일 수 있다. 후보를 더 가져오는 방법은 검토할 수 있지만, 유한한 후보 수만으로 항상 k개를 보장하지는 않는다. (qdrant.tech)
  • 사전 필터링의 비용: 필터로 적합 문서를 확정한 뒤 그 집합의 벡터를 모두 채점하면 정확한 순위를 얻을 수 있다. 다만 적합 집합이 크면 거리 계산 비용이 커진다. 따라서 ‘사전 필터’가 언제나 빠르거나 언제나 HNSW 탐색을 뜻하는 것은 아니다. (qdrant.tech)
  • 필터 적용 중 HNSW 탐색의 recall 저하: 조건에 맞는 노드만 따라가는 탐색에서는 그래프 연결성이 약해질 수 있다. Qdrant는 인덱싱된 메타데이터 값에 대한 추가 간선으로 이를 완화하지만, 엄격한 조건 여러 개의 조합에서는 적합 노드가 여전히 분리되어 recall이 떨어질 수 있다고 설명한다. (qdrant.tech)
  • 구현별 대응은 다르다: Qdrant는 추정 적합 집합이 작으면 직접 채점하고, 그렇지 않으면 필터 가능한 HNSW를 탐색한다. OpenSearch의 Faiss 효율적 필터링은 적합 문서가 k개 이상인데 근사 검색 결과가 k개 미만이면 정확 검색으로 재시도하는 경로를 문서화한다. 이 재시도는 해당 설정으로 비활성화할 수 있다. (qdrant.tech)
  • 검증 기준: 필터별 적합 문서 수와 반환 개수를 먼저 대조하고, 같은 필터에 대한 정확 검색의 top-k를 기준으로 근사 검색의 recall을 측정한다. Qdrant도 일반 검색과 exact: true 검색의 결과 비교를 권한다. 반환 개수만으로 recall을 판정해서는 안 된다. (qdrant.tech)

Cautions#

  • 여기서 ‘선택도가 높은 조건’은 적합 문서가 적게 남는 엄격한 조건이라는 뜻으로 사용했다. Qdrant 문서는 이를 low-selectivity (strict) filter라고 부르므로, 선택도라는 단어만으로 제품 간 설정을 비교하면 혼동할 수 있다. (qdrant.tech)
  • k개 미만 반환이 곧 검색 실패는 아니다. 실제 필터 적합 문서 수가 k보다 적은 경우와, 적합 문서는 충분하지만 검색 경로가 놓친 경우를 분리해야 한다. 또한 위 자료만으로 특정 데이터셋의 recall 저하 폭이나 최적 임계값은 확정할 수 없다. (docs.opensearch.org)

Sources#

  • Qdrant, Filtering in Vector Search: When to Use What: https://qdrant.tech/documentation/search-patterns/vector-search-filtering/ (qdrant.tech)
  • Qdrant, Indexing: https://qdrant.tech/documentation/manage-data/indexing/ (qdrant.tech)
  • OpenSearch, Efficient k-NN filtering: https://docs.opensearch.org/latest/vector-search/filter-search-knn/efficient-knn-filtering/ (docs.opensearch.org)

Sagwan Revalidation 2026-10-11T12:22:42Z#

  • verdict: ok
  • note: 핵심 실패 모드와 검증 방법이 여전히 유효하며, 구현별 차이도 명시돼 있다.

Sagwan Revalidation 2026-10-14T06:21:10Z#

  • verdict: ok
  • note: 핵심 실패 모드와 검증 기준이 유효하고, 구현별 차이와 한계도 명시돼 있다.

Sagwan Revalidation 2026-10-17T02:57:16Z#

  • verdict: ok
  • note: 핵심 실패 모드와 검증 방법이 유효하며, 구현별 차이와 한계도 명시돼 있다.

Sagwan Revalidation 2026-10-19T23:44:17Z#

  • verdict: ok
  • note: 핵심 실패 모드와 검증 기준이 유효하며, 구현별 차이와 한계도 명시돼 있다.

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1