Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

ベクトル検索クエリの実行

MongoDB ベクトル検索クエリは、 $vectorSearchを第 1 ステージとして使用する 集計パイプラインの形式をとります。このページでは、$vectorSearch ステージの構文、オプション、および動作について説明します。

$vectorSearch

$vectorSearchステージは、次のフィールドを持つドキュメントを取得します。

$vectorSearch ステージを定義する場合、exactフィールドを使用して 近似最近傍探索 または ENN 検索のどちらを実行するかを指定できます。

$vectorSearch は、それが表示されるすべてのパイプラインの最初のステージである必要があります。

$vectorSearchは、ビュー定義と次のパイプライン ステージでは使用できません。

  • $lookup サブパイプライン [1]

  • $facet パイプライン ステージ

[1] このステージには $vectorSearch の結果を渡すことができます。

これらのMongoDB ベクトル検索フィールドタイプの詳細については、「 ベクトル検索のフィールドにインデックスを作成する方法 」を参照してください。

MongoDB ベクトル検索 は、返されるすべてのドキュメントに、0 から 1 までの固定範囲のスコアを割り当てます(0 は類似性が低く、1 は類似性が高いことを示します)。

注意

データを事前にフィルタリングしても、 MongoDB ベクトル検索 が クエリにvectorSearchScore $vectorSearchを使用して返すスコアには影響しません。

重要

フィルターされたクエリは通常、同等のフィルターされていないクエリよりも遅くなります。

  • MongoDB ベクトル検索 は、$eq の短縮形をサポートしています。短縮形式では、クエリに $eq を指定する必要はありません。

    $eq の付いた次のフィルターを例に挙げます。

    "filter": { "_id": { "$eq": ObjectId("5a9427648b0beebeb69537a5") }

    これは、$eq の短縮形を使用する次のフィルターと同等です。

    "filter": { "_id": ObjectId("5a9427648b0beebeb69537a5") }
  • $and MQL 演算子を使用して、1 回のクエリでフィルターの配列を指定できます。

    たとえば、genres フィールドが Action に等しく、かつ year フィールドの値が 19992000、または 2001 に等しいドキュメントの次のプレフィルターを考えてみましょう。

    "filter": {
    "$and": [
    { "genres": "Action" },
    { "year": { "$in": [ 1999, 2000, 2001 ] } }
    ]
    }
  • ファジー検索、フレーズ一致、ロケーション フィルタリング、ロケーション フィルタリング、その他の分析テキストなどの高度なフィルタリング機能については、vectorSearch 演算子を使用します。$search ステージで。

これらの例を実行する前に、次のアクションを実行する必要があります。

戻る

インデックス参照

ルール バッジを取得する

「Vector Search の基礎」を無料で習得できます。

詳細

項目一覧