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] } }] } | support のドキュメント、または 2024 年か 2025 年のドキュメント |
{ "published_at": { "$gte": "2025-06-01" } } | 2025 年 6 月 1 日以降に公開されたドキュメント |
{ "file_id": "report.pdf" } | 1 つのアップロード済みファイル |
{ "file_id": "report.pdf", "page": 3 } | そのファイルの 3 ページ目 |
ルール
| ルール | |
|---|---|
| 等価 | テキストとして比較します。3、3.0、"3" は互いに一致します |
| 範囲 | 数値は数値と、文字列は文字列とバイト単位で比較します。日付は 1 つの形式の ISO 8601 で書きます(2025-06-01 または 2025-06-01T10:00:00Z) |
| 範囲で使えないもの | ブール値、配列の要素、222 バイトを超える文字列 |
| キーがない場合 | そのキーを持たないドキュメントは $ne と $nin に一致します |
| 否定 | ほとんどのドキュメントを除外する否定では、結果が top_k より少なくなることがあります |
| サイズ | 最大 256 条件、ネストは 8 階層まで。$and、$or、複数値の $in はそれぞれ 1 つと数えます |
| リスト | $in と $nin は最大 255 個の値を受け付けます |
| 不明なキー | チェックされません。キーのスペルを間違えると何にも一致しません |
| エラー | 無効なフィルターは 400 invalid_filter を返します |