Querying
Basic Search
먼저 검색 품질 파라미터를 설정한 뒤, ORDER BY … LIMIT k 패턴으로 최근접 이웃을 조회합니다.
-- HNSW 검색 탐색 폭 설정
SET vectoron.hnsw_ef_search = 64;
-- 제곱 유클리드 거리 기준으로 상위 5개 조회
SELECT *
FROM items
ORDER BY embedding <-> '[3,2,1]'
LIMIT 5;
Operators
벡터 거리 계산에 사용되는 SQL 연산자:
| 연산자 | 설명 |
|---|---|
<-> |
제곱 유클리드 거리 |
<#> |
음의 내적 |
<=> |
코사인 거리 |
Filtering
메타데이터 필터를 함께 사용해 결과를 좁힐 수 있습니다.
SELECT *
FROM items
WHERE category_id = 1
ORDER BY embedding <#> '[0.5,0.5,0.5]'
LIMIT 10;
Query Options
세션 또는 트랜잭션 단위로 탐색 파라미터를 조정할 수 있습니다.
-- IVF 스캔할 리스트 개수 설정
SET vectoron.ivf_nprobe = 1;
-- 트랜잭션 내에서 HNSW 탐색 깊이 설정
SET LOCAL vectoron.hnsw_ef_search = 40;
-- vamana 탐색 시 beam 크기 설정
SET LOCAL vectoron.vamana_l_search = 32;
Search Modes
- vbase (기본) 대부분의 상황에 적합하며, PostgreSQL 쿼리 최적화와 벡터 검색을 통합하여 처리합니다.
-
basic Faiss 등 벡터 라이브러리와 동작을 일치시키려는 경우 사용합니다.
- 사용 전
VACUUM실행 필요 - 필터 조건 없이 순수 벡터 검색만 지원
- 사용 전
-- basic 모드 활성화 (세션 단위)
SET vectoron.search_mode = 'basic';