filter로 필터를 전달하면 메타데이터로 문서를 매칭합니다.
{ "team": "support", "year": { "$gte": 2024 } }
연산자
| 연산자 | 일치 조건 |
|---|---|
{ "key": value }, $eq | 값과 같음. 배열이면 값을 포함함 |
$in | 목록의 값 중 하나와 같음 |
$ne, $nin | 값 또는 목록의 어떤 값과도 같지 않음(검색 전용) |
$gt, $gte, $lt, $lte | 초과, 이상, 미만, 이하 |
$and, $or | 필터 목록 전부 또는 하나 |
예시
| 필터 | 일치 대상 |
|---|---|
{ "tags": "billing" } | tags 배열에 billing이 있는 문서 |
{ "lang": { "$in": ["en", "de"] } } | 영어 또는 독일어 문서 |
{ "$or": [{ "team": "support" }, { "year": { "$in": [2024, 2025] } }] } | 지원팀 문서 또는 2024년이나 2025년의 모든 문서 |
{ "published_at": { "$gte": "2025-06-01" } } | 2025년 6월 1일 이후에 게시된 문서 |
{ "file_id": "report.pdf" } | 업로드한 파일 하나 |
{ "file_id": "report.pdf", "page": 3 } | 그 파일의 3페이지 |
규칙
| 규칙 | |
|---|---|
| 동등 비교 | 텍스트로 비교합니다. 3, 3.0, "3"은 서로 일치합니다 |
| 범위 | 숫자는 숫자끼리, 문자열은 문자열끼리 바이트 단위로 비교합니다. 날짜는 ISO 8601 한 가지 형식으로 쓰세요(2025-06-01 또는 2025-06-01T10:00:00Z) |
| 범위에 쓸 수 없음 | 불리언, 배열 항목, 222바이트를 넘는 문자열 |
| 없는 키 | 키가 없는 문서는 $ne, $nin과 일치합니다 |
| 부정 | 대부분의 문서를 제외하는 부정은 top_k보다 적은 결과를 반환할 수 있습니다 |
| 크기 | 최대 256개 조건, 최대 8단계 중첩. 각 $and, $or, 다중 값 $in은 하나로 셉니다 |
| 목록 | $in, $nin은 최대 255개 값을 받습니다 |
| 알 수 없는 키 | 검사하지 않습니다. 철자가 틀린 키는 아무것도 일치하지 않습니다 |
| 오류 | 잘못된 필터는 400 invalid_filter를 반환합니다 |