vector 型を使用してベクトル埋め込みをインデックスできます。ベクター フィールドには、次のタイプの数値の配列を含める必要があります。
BSON
int32、int64、またはdoubleデータ型BSON
doubleデータ型
集計パイプラインでは、 $searchステージと同様に$vectorSearch vectorSearch 演算子を使用して、vector 型としてインデックス付けされたフィールドをクエリできます。
vector 型の制限
次の制限が適用されます。
オブジェクトの配列を持つフィールド(MongoDB Search
embeddedDocuments型)をvector型としてインデックスすることはできません。vector型を含むインデックス定義では、storedSource をtrueに設定できません。代わりに、includeを使用してmongotに保存するフィールドを指定するか、excludeを使用してvector型のフィールドをストレージから除外してください。$vectorSearchステージを使用してvectorタイプとしてインデックス付けされたフィールドをクエリすることはできません。MongoDB Search プレイグラウンドで、フィールドを
vectorタイプとしてインデックスできます。
Define the Index for the vector Type
Configure vector Field Properties
Configure vector Field Properties
MongoDB Search vector 型は次のパラメータを取ります。
オプション | タイプ | 必要性 | 説明 |
|---|---|---|---|
|
| 必須 | このフィールド型を識別する、人間が判読できるラベル。値は |
| Int | 必須 | MongoDB Search がインデックス時とクエリ時に強制するベクトルの次元数。このフィールドは 量子化ベクトルまたは BinData のインデックス作成には、次のいずれかの値を指定できます。
選択した埋め込みモデルによってベクトル埋め込みの次元数が決まります。出力の次元数に関して複数のオプションを持つモデルもあります。「埋め込みを作成する方法の選択」を参照してください。 |
| 文字列 | 必須 | 上位 K 近傍の検索に使用するベクトル類似度関数。このフィールドは 次のいずれかの値を指定できます。
「類似性関数について」を参照してください。 |
| 文字列 | 任意 | ベクトルの自動ベクトル量子化のタイプ。埋め込みが 次のいずれかの値を指定できます。
「About Quantization.」を参照してください。 |
| 文字列 | 任意 | ベクトルフィールドのインデックス構造。値は次のとおりです。
省略された場合、デフォルトは
|
| オブジェクト | 任意 | Hierarchical Navigable Small Worldsグラフの構築に使用するパラメーター。省略した場合、は 重要:これはプレビュー機能として利用可能です。デフォルト値を変更すると、MongoDB Search インデックスとクエリに悪影響を与える可能性があります。 |
| Int | 任意 | Hierarchical Navigable Small Worldsグラフでノードが持つことができるエッジ(または接続)の最大数。値は、両端を含む A higher number improves :recall (accuracy of search results) because the graph is better connected. However, this also increases query and indexing time by increasing the number of neighbors to evaluate per graph node, and requires more memory to store the additional nodes for each connection in the Hierarchical Navigable Small Worlds graph. |
| Int | 任意 | クエリ時の 数値が大きいほど、高品質な接続を持つグラフが提供され、検索品質(リコール)が向上しますが、クエリのレイテンシが増加する可能性もあります。 |
Try an Example for the vector Type
以下のインデックス定義例では、サンプル データの sample_mflix.embedded_movies コレクションを使用します。コレクションを読み込んだ後は、以下の例を使用して、vectorSearch (MongoDB Search 演算子) を使用してクエリを実行するために plot_embedding_voyage_3_large フィールドを vector 型としてインデックス化できます。このインデックスに対して実行するサンプル クエリについては、こちらの例を参照してください。
このインデックス定義は、動的にインデックス可能なすべてのフィールドがデフォルトtypeSetを用いて自動的にインデックスされ、さらにplot_embedding_voyage_3_large フィールドが以下の設定で vector 型としてインデックスされます。
2048次元数dotProduct類似関数scalar量子化hnsw(デフォルト)インデックスの作成メソッド