explain
メソッドを使用して Atlas ベクトル検索クエリを実行すると、クエリはクエリプランとクエリが内部で実行された方法を説明する実行統計を含む BSONドキュメントを返します。
Tip
構文
db.<myCollection>.explain("<verbosity>").aggregate([ { "$vectorSearch": { "exact": true | false, "filter": {<filter-specification>}, "index": "<index-name>", "limit": <number-of-results>, "numCandidates": <number-of-candidates>, "path": "<field-to-search>", "queryVector": [<array-of-numbers>] } } ])
冗長
冗長モードは、explain
の動作と返される情報の量を制御します。値は、冗長を減らすために、次のいずれかになります。
クエリの実行統計を含む | |
クエリの実行統計情報をもつ | |
queryPlanner (デフォルト) | クエリプランに関する情報。 |
Tip
explain の結果
explain
メソッドは、次のフィールドを含むBSONドキュメントを返します。
オプション | タイプ | 必要性 | 目的 |
---|---|---|---|
| ドキュメント | 任意 | コレクターの実行統計を説明します。 |
| ドキュメント | 任意 | 有用なメタデータを含んでいます。 |
| ドキュメント | 任意 | クエリの実行統計を記述します。これは |
| ドキュメント | 任意 | クエリ実行後にドキュメントごとのデータを取得する方法の詳細。これは、 |
| ドキュメント | 任意 | クエリが実行されたときのリソース使用状況を詳述します。 |
collectors
collectors
は、次のフィールドを含むBSONドキュメントです。
フィールド | タイプ | 必要性 | 目的 |
---|---|---|---|
| ドキュメント | 必須 | クエリのすべてのコレクターの統計情報。報告される統計は、クエリで使用されるすべてのコレクターにわたる最大値または、すべてのサブコレクションにわたる統計の合計を表します。タイミング統計は、クエリ全体のすべてのコレクターで費やされた合計時間を反映するように合計されます。詳しくは、 |
allCollectorStats
allCollectorStats
は、クエリで指定されたすべてのコレクターのコレクター統計を記述するBSONドキュメントです。これには、次のキーが含まれています。
フィールド | 説明 |
---|---|
| コレクターが収集した期間と結果の数を追跡します。 |
| コレクターから |
| スコアラーがコレクターに設定された合計時間と回数を追跡する統計。 |
metadata
metadata
には、次のような有用なメタデータが含まれています。
フィールド | タイプ | 必要性 | 目的 |
---|---|---|---|
| 文字列 | 任意 |
|
| 文字列 | 任意 |
|
| 文字列 | 任意 | クエリで使用される Atlas ベクトル検索インデックス。 |
| ドキュメント | 任意 |
|
| 整数 | 任意 | 削除されたドキュメントを含むインデックス内のドキュメントの合計数。 |
query
explain
応答は、クエリの実行統計を説明するキーと値を含むBSONドキュメントです。 結果セット内のexplain
ドキュメントには、次のフィールドが含まれています。
フィールド | タイプ | 必要性 | 目的 |
---|---|---|---|
| string | 任意 | クエリされた埋め込みフィールドへのパス(ルートでない場合にのみ)。 |
| string | 必須 | ベクトル検索クエリーのタイプの名前。詳しくは、 |
| ドキュメント | 必須 | ベクトル検索クエリー情報。詳しくは、 |
| ドキュメント | 任意 |
|
args
explain 応答には、クエリが内部的に実行された方法に関する情報が含まれます。args
フィールドには、次の詳細が含まれます。
クエリ タイプ
各クエリ タイプの構造化された概要の例
構造化サマリー内のクエリ オプション
次のセクションでは、クエリのタイプと構造化サマリーのフィールドについて説明します。
WrappedKnnQuery
複数のクエリを組み合わせた Annベクトル検索に使用されるラッパークエリ。構造化されたサマリーには、次のオプションの詳細が含まれます。
フィールドタイプ必要性説明query
配列
必須
ベクトル検索で使用されるサブクエリの配列。通常、
KnnFloatVectorQuery
とDocAndScoreQuery
が含まれます。
KnnFloatVectorQuery
浮動小数ベクトルに対する ANN 検索に固有のクエリ タイプ。構造化されたサマリーには、次のオプションに関する詳細が含まれています。
フィールドタイプ必要性説明field
文字列
必須
検索対象のベクトルフィールドパス。
k
整数
必須
検索する最近傍の数。
ExactVectorSearchQuery
ENNベクトル検索のクエリ タイプ。構造化されたサマリーには、次のオプションに関する詳細が含まれています。
フィールドタイプ必要性説明field
文字列
必須
検索対象のベクトルフィールドパス。
similarityFunction
文字列
必須
使用される類似性関数(
dotProduct
、cosine
、またはeuclidean
)。filter
ドキュメント
任意
ベクトル検索範囲を制限するプレフィルター クエリ。
BooleanQuery
ベクトル検索クエリーで事前フィルターを使用する場合、説明結果には
BooleanQuery
型が含まれます。このタイプのフィールドおよび事前フィルター クエリに固有のその他のクエリ タイプの詳細については、Atlas Search Explain ページの「 クエリ タイプ 」を参照してください。
stats
executionStats と allPlansExecution の冗長モードのexplain
レスポンスにはstats
、クエリ実行のさまざまな段階でクエリ に費やされた 時間 に関する情報を含む フィールドが含まれています。
タイミングの内訳
クエリの領域
統計は、クエリの次の領域で利用できます。
resourceUsage
resourceUsage
ドキュメントには、クエリの実行に使用されるリソースが表示されます。次のフィールドが含まれています。
フィールド | タイプ | 必要性 | 目的 |
---|---|---|---|
| Long | 必須 | クエリ実行中にシステムがメモリ内で必要なデータを見つけられず、ディスクなどのバッキング ストアから読み込む場合に発生するメジャーなページ フォールトの数。 |
| Long | 必須 | データがページキャッシュにあるが、まだプロセスのページテーブルにマップされていない場合に発生するマイナーページフォールトの数。 |
| Long | 必須 | ユーザー空間で費やされた CPU 時間(ミリ秒単位)。 |
| Long | 必須 | システム空間で費やされた CPU 時間(ミリ秒単位)。 |
| 整数 | 必須 | すべてのバッチでのクエリ実行中に |
| 整数 | 必須 | クエリのプロセシング中に |
例
次の例では、サンプルAnn と ENNクエリで explain
メソッドを使用します。自分の環境で次の例を実行するには、まず を使用して Atlas ベクトル検索クイック mongosh
スタートを完了する必要があります。
allPlansExecution
plot_embedding
次の例では、allPlansExecution
の冗長モードを使用して、 フィールドの DN と ENNベクトル検索クエリーで explain メソッドを実行します。
db.embedded_movies.explain("allPlansExecution").aggregate([ { "$vectorSearch": { "index": "vector_index", "path": "plot_embedding", "queryVector": QUERY_EMBEDDING, "numCandidates": 150, "limit": 10 } } ])
{ explainVersion: '1', stages: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], numCandidates: 150, limit: 10, explain: { query: { type: 'WrappedKnnQuery', args: { query: [ { type: 'KnnFloatVectorQuery', args: { field: '$type:knnVector/plot_embedding', k: 150 }, stats: { context: { millisElapsed: 0 }, match: { millisElapsed: 0 }, score: { millisElapsed: 0 } } }, { type: 'DocAndScoreQuery', args: {}, stats: { context: { millisElapsed: 0.011281, invocationCounts: { createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 0.045831, invocationCounts: { nextDoc: Long('151') } }, score: { millisElapsed: 0.049853, invocationCounts: { score: Long('150'), setMinCompetitiveScore: Long('30') } } } } ] }, stats: { context: { millisElapsed: 3.226133, invocationCounts: { vectorExecution: Long('1'), createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 0.045831, invocationCounts: { nextDoc: Long('151') } }, score: { millisElapsed: 0.049853, invocationCounts: { score: Long('150'), setMinCompetitiveScore: Long('30') } } } }, collectors: { allCollectorStats: { millisElapsed: 0.211472, invocationCounts: { collect: Long('150'), competitiveIterator: Long('1'), setScorer: Long('1') } }, facet: { collectorStats: { millisElapsed: 0 } } }, metadata: { mongotVersion: '1.44.0', mongotHostName: '<hostname>.mongodb.net', indexName: 'vector_index', totalLuceneDocs: 3483 }, resourceUsage: { majorFaults: Long('0'), minorFaults: Long('0'), userTimeMs: Long('0'), systemTimeMs: Long('0'), maxReportingThreads: 1, numBatches: 1 } } }, nReturned: Long('0'), executionTimeMillisEstimate: Long('29') }, { '$_internalSearchIdLookup': { limit: Long('10') }, nReturned: Long('0'), executionTimeMillisEstimate: Long('29') } ], queryShapeHash: '9EFFBE6AC5B8DC66D20DB8939CF3ED6669D0C09BB6938C17AD3FB8C7793765B8', serverInfo: { host: '<hostname>.mongodb.net', port: 27017, version: '8.0.5', gitVersion: 'cb9e2e5e552ee39dea1e39d7859336456d0c9820' }, serverParameters: { internalQueryFacetBufferSizeBytes: 104857600, internalQueryFacetMaxOutputDocSizeBytes: 104857600, internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600, internalDocumentSourceGroupMaxMemoryBytes: 104857600, internalQueryMaxBlockingSortMemoryUsageBytes: 104857600, internalQueryProhibitBlockingMergeOnMongoS: 0, internalQueryMaxAddToSetBytes: 104857600, internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600, internalQueryFrameworkControl: 'trySbeRestricted', internalQueryPlannerIgnoreIndexWithCollationForRegex: 1 }, command: { aggregate: 'embedded_movies', pipeline: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], numCandidates: 150, limit: 10 } } ], cursor: {}, '$db': 'sample_mflix' }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1740781674, i: 1 }), signature: { hash: Binary.createFromBase64('gpGnPOB17p3NnKu74vhm+kCLXf8=', 0), keyId: Long('7446434162581438465') } }, operationTime: Timestamp({ t: 1740781674, i: 1 }) }
db.embedded_movies.explain("allPlansExecution").aggregate([ { "$vectorSearch": { "index": "vector_index", "path": "plot_embedding", "queryVector": QUERY_EMBEDDING, "exact": true, "limit": 10 } } ])
{ explainVersion: '1', stages: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], exact: true, limit: 10, explain: { query: { type: 'ExactVectorSearchQuery', args: { field: '$type:knnVector/plot_embedding', similarityFunction: 'dotProduct', filter: { type: 'DefaultQuery', args: { queryType: 'FieldExistsQuery' }, stats: { context: { millisElapsed: 0.031999, invocationCounts: { createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 1.2138, invocationCounts: { nextDoc: Long('3403') } }, score: { millisElapsed: 0 } } } }, stats: { context: { millisElapsed: 0.055318, invocationCounts: { createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 2.578062, invocationCounts: { nextDoc: Long('3403') } }, score: { millisElapsed: 5.624325, invocationCounts: { score: Long('3402'), setMinCompetitiveScore: Long('71') } } } }, collectors: { allCollectorStats: { millisElapsed: 7.095773, invocationCounts: { collect: Long('3402'), competitiveIterator: Long('1'), setScorer: Long('1') } }, facet: { collectorStats: { millisElapsed: 0 } } }, metadata: { mongotVersion: '1.44.0', mongotHostName: '<hostname>.mongodb.net', indexName: 'vector_index', totalLuceneDocs: 3483 }, resourceUsage: { majorFaults: Long('0'), minorFaults: Long('0'), userTimeMs: Long('0'), systemTimeMs: Long('0'), maxReportingThreads: 1, numBatches: 1 } } }, nReturned: Long('0'), executionTimeMillisEstimate: Long('19') }, { '$_internalSearchIdLookup': { limit: Long('10') }, nReturned: Long('0'), executionTimeMillisEstimate: Long('19') } ], queryShapeHash: '9EFFBE6AC5B8DC66D20DB8939CF3ED6669D0C09BB6938C17AD3FB8C7793765B8', serverInfo: { host: '<hostname>.mongodb.net', port: 27017, version: '8.0.5', gitVersion: 'cb9e2e5e552ee39dea1e39d7859336456d0c9820' }, serverParameters: { internalQueryFacetBufferSizeBytes: 104857600, internalQueryFacetMaxOutputDocSizeBytes: 104857600, internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600, internalDocumentSourceGroupMaxMemoryBytes: 104857600, internalQueryMaxBlockingSortMemoryUsageBytes: 104857600, internalQueryProhibitBlockingMergeOnMongoS: 0, internalQueryMaxAddToSetBytes: 104857600, internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600, internalQueryFrameworkControl: 'trySbeRestricted', internalQueryPlannerIgnoreIndexWithCollationForRegex: 1 }, command: { aggregate: 'embedded_movies', pipeline: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], exact: true, limit: 10 } } ], cursor: {}, '$db': 'sample_mflix' }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1740781894, i: 1 }), signature: { hash: Binary.createFromBase64('cNmipB7AsFGaT4ipmWCKizM/EbU=', 0), keyId: Long('7446434162581438465') } }, operationTime: Timestamp({ t: 1740781894, i: 1 }) }
queryPlanner
plot_embedding
次の例では、queryPlanner
の冗長モードを使用して、 フィールドの DN と ENNベクトル検索クエリーで explain メソッドを実行します。
db.embedded_movies.explain("queryPlanner").aggregate([ { "$vectorSearch": { "index": "vector_index", "path": "plot_embedding", "queryVector": QUERY_EMBEDDING, "numCandidates": 150, "limit": 10 } } ])
{ explainVersion: '1', stages: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], numCandidates: 150, limit: 10, explain: { query: { type: 'WrappedKnnQuery', args: { query: [ { type: 'KnnFloatVectorQuery', args: { field: '$type:knnVector/plot_embedding', k: 150 } }, { type: 'DocAndScoreQuery', args: {} } ] } }, metadata: { mongotVersion: '1.44.0', mongotHostName: '<hostname>.mongodb.net', indexName: 'vector_index', totalLuceneDocs: 3483 } } } }, { '$_internalSearchIdLookup': { limit: Long('10') } } ], queryShapeHash: '9EFFBE6AC5B8DC66D20DB8939CF3ED6669D0C09BB6938C17AD3FB8C7793765B8', serverInfo: { host: '<hostname>.mongodb.net', port: 27017, version: '8.0.5', gitVersion: 'cb9e2e5e552ee39dea1e39d7859336456d0c9820' }, serverParameters: { internalQueryFacetBufferSizeBytes: 104857600, internalQueryFacetMaxOutputDocSizeBytes: 104857600, internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600, internalDocumentSourceGroupMaxMemoryBytes: 104857600, internalQueryMaxBlockingSortMemoryUsageBytes: 104857600, internalQueryProhibitBlockingMergeOnMongoS: 0, internalQueryMaxAddToSetBytes: 104857600, internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600, internalQueryFrameworkControl: 'trySbeRestricted', internalQueryPlannerIgnoreIndexWithCollationForRegex: 1 }, command: { aggregate: 'embedded_movies', pipeline: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], numCandidates: 150, limit: 10 } } ], cursor: {}, '$db': 'sample_mflix' }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1740782044, i: 1 }), signature: { hash: Binary.createFromBase64('/ZHh6h+2qbJtYdOBHmeZepo1Wsc=', 0), keyId: Long('7446434162581438465') } }, operationTime: Timestamp({ t: 1740782044, i: 1 }) }
db.embedded_movies.explain("queryPlanner").aggregate([ { "$vectorSearch": { "index": "vector_index", "path": "plot_embedding", "queryVector": QUERY_EMBEDDING, "exact": true, "limit": 10 } } ])
{ explainVersion: '1', stages: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], exact: true, limit: 10, explain: { query: { type: 'ExactVectorSearchQuery', args: { field: '$type:knnVector/plot_embedding', similarityFunction: 'dotProduct', filter: { type: 'DefaultQuery', args: { queryType: 'FieldExistsQuery' } } } }, metadata: { mongotVersion: '1.44.0', mongotHostName: '<hostname>.mongodb.net', indexName: 'vector_index', totalLuceneDocs: 3483 } } } }, { '$_internalSearchIdLookup': { limit: Long('10') } } ], queryShapeHash: '9EFFBE6AC5B8DC66D20DB8939CF3ED6669D0C09BB6938C17AD3FB8C7793765B8', serverInfo: { host: '<hostname>.mongodb.net', port: 27017, version: '8.0.5', gitVersion: 'cb9e2e5e552ee39dea1e39d7859336456d0c9820' }, serverParameters: { internalQueryFacetBufferSizeBytes: 104857600, internalQueryFacetMaxOutputDocSizeBytes: 104857600, internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600, internalDocumentSourceGroupMaxMemoryBytes: 104857600, internalQueryMaxBlockingSortMemoryUsageBytes: 104857600, internalQueryProhibitBlockingMergeOnMongoS: 0, internalQueryMaxAddToSetBytes: 104857600, internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600, internalQueryFrameworkControl: 'trySbeRestricted', internalQueryPlannerIgnoreIndexWithCollationForRegex: 1 }, command: { aggregate: 'embedded_movies', pipeline: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], exact: true, limit: 10 } } ], cursor: {}, '$db': 'sample_mflix' }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1740782103, i: 23 }), signature: { hash: Binary.createFromBase64('yn3TtM4cfhu6HXCGzBGPbLmlM4E=', 0), keyId: Long('7446434162581438465') } }, operationTime: Timestamp({ t: 1740782103, i: 23 }) }
executionStats
plot_embedding
次の例では、executionStats
の冗長モードを使用して、 フィールドの DN と ENNベクトル検索クエリーで explain メソッドを実行します。
db.embedded_movies.explain("executionStats").aggregate([ { "$vectorSearch": { "index": "vector_index", "path": "plot_embedding", "queryVector": QUERY_EMBEDDING, "numCandidates": 150, "limit": 10 } } ])
{ explainVersion: '1', stages: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], numCandidates: 150, limit: 10, explain: { query: { type: 'WrappedKnnQuery', args: { query: [ { type: 'KnnFloatVectorQuery', args: { field: '$type:knnVector/plot_embedding', k: 150 }, stats: { context: { millisElapsed: 0 }, match: { millisElapsed: 0 }, score: { millisElapsed: 0 } } }, { type: 'DocAndScoreQuery', args: {}, stats: { context: { millisElapsed: 0.015853, invocationCounts: { createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 0.013112, invocationCounts: { nextDoc: Long('151') } }, score: { millisElapsed: 0.033269, invocationCounts: { score: Long('150'), setMinCompetitiveScore: Long('30') } } } } ] }, stats: { context: { millisElapsed: 3.979414, invocationCounts: { vectorExecution: Long('1'), createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 0.013112, invocationCounts: { nextDoc: Long('151') } }, score: { millisElapsed: 0.033269, invocationCounts: { score: Long('150'), setMinCompetitiveScore: Long('30') } } } }, collectors: { allCollectorStats: { millisElapsed: 0.115101, invocationCounts: { collect: Long('150'), competitiveIterator: Long('1'), setScorer: Long('1') } }, facet: { collectorStats: { millisElapsed: 0 } } }, metadata: { mongotVersion: '1.44.0', mongotHostName: '<hostname>.mongodb.net', indexName: 'vector_index', totalLuceneDocs: 3483 }, resourceUsage: { majorFaults: Long('0'), minorFaults: Long('0'), userTimeMs: Long('0'), systemTimeMs: Long('0'), maxReportingThreads: 1, numBatches: 1 } } }, nReturned: Long('0'), executionTimeMillisEstimate: Long('13') }, { '$_internalSearchIdLookup': { limit: Long('10') }, nReturned: Long('0'), executionTimeMillisEstimate: Long('13') } ], queryShapeHash: '9EFFBE6AC5B8DC66D20DB8939CF3ED6669D0C09BB6938C17AD3FB8C7793765B8', serverInfo: { host: '<hostname>.mongodb.net', port: 27017, version: '8.0.5', gitVersion: 'cb9e2e5e552ee39dea1e39d7859336456d0c9820' }, serverParameters: { internalQueryFacetBufferSizeBytes: 104857600, internalQueryFacetMaxOutputDocSizeBytes: 104857600, internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600, internalDocumentSourceGroupMaxMemoryBytes: 104857600, internalQueryMaxBlockingSortMemoryUsageBytes: 104857600, internalQueryProhibitBlockingMergeOnMongoS: 0, internalQueryMaxAddToSetBytes: 104857600, internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600, internalQueryFrameworkControl: 'trySbeRestricted', internalQueryPlannerIgnoreIndexWithCollationForRegex: 1 }, command: { aggregate: 'embedded_movies', pipeline: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], numCandidates: 150, limit: 10 } } ], cursor: {}, '$db': 'sample_mflix' }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1740782136, i: 1 }), signature: { hash: Binary.createFromBase64('33LuqO946oIzmslClhuu+Z+PthQ=', 0), keyId: Long('7446434162581438465') } }, operationTime: Timestamp({ t: 1740782136, i: 1 }) }
db.embedded_movies.explain("executionStats").aggregate([ { "$vectorSearch": { "index": "vector_index", "path": "plot_embedding", "queryVector": QUERY_EMBEDDING, "exact": true, "limit": 10 } } ])
{ explainVersion: '1', stages: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], exact: true, limit: 10, explain: { query: { type: 'ExactVectorSearchQuery', args: { field: '$type:knnVector/plot_embedding', similarityFunction: 'dotProduct', filter: { type: 'DefaultQuery', args: { queryType: 'FieldExistsQuery' }, stats: { context: { millisElapsed: 0.029472, invocationCounts: { createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 0.234054, invocationCounts: { nextDoc: Long('3403') } }, score: { millisElapsed: 0 } } } }, stats: { context: { millisElapsed: 0.050328, invocationCounts: { createWeight: Long('1'), createScorer: Long('2') } }, match: { millisElapsed: 0.622028, invocationCounts: { nextDoc: Long('3403') } }, score: { millisElapsed: 3.03997, invocationCounts: { score: Long('3402'), setMinCompetitiveScore: Long('71') } } } }, collectors: { allCollectorStats: { millisElapsed: 3.601357, invocationCounts: { collect: Long('3402'), competitiveIterator: Long('1'), setScorer: Long('1') } }, facet: { collectorStats: { millisElapsed: 0 } } }, metadata: { mongotVersion: '1.44.0', mongotHostName: '<hostname>.mongodb.net', indexName: 'vector_index', totalLuceneDocs: 3483 }, resourceUsage: { majorFaults: Long('0'), minorFaults: Long('0'), userTimeMs: Long('0'), systemTimeMs: Long('0'), maxReportingThreads: 1, numBatches: 1 } } }, nReturned: Long('0'), executionTimeMillisEstimate: Long('12') }, { '$_internalSearchIdLookup': { limit: Long('10') }, nReturned: Long('0'), executionTimeMillisEstimate: Long('12') } ], queryShapeHash: '9EFFBE6AC5B8DC66D20DB8939CF3ED6669D0C09BB6938C17AD3FB8C7793765B8', serverInfo: { host: '<hostname>.mongodb.net', port: 27017, version: '8.0.5', gitVersion: 'cb9e2e5e552ee39dea1e39d7859336456d0c9820' }, serverParameters: { internalQueryFacetBufferSizeBytes: 104857600, internalQueryFacetMaxOutputDocSizeBytes: 104857600, internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600, internalDocumentSourceGroupMaxMemoryBytes: 104857600, internalQueryMaxBlockingSortMemoryUsageBytes: 104857600, internalQueryProhibitBlockingMergeOnMongoS: 0, internalQueryMaxAddToSetBytes: 104857600, internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600, internalQueryFrameworkControl: 'trySbeRestricted', internalQueryPlannerIgnoreIndexWithCollationForRegex: 1 }, command: { aggregate: 'embedded_movies', pipeline: [ { '$vectorSearch': { index: 'vector_index', path: 'plot_embedding', queryVector: [ -0.0016261312, -0.028070757, -0.011342932, -0.012775794, ... -0.0060913274, -0.007130985, -0.013109017, -0.009710136 ], exact: true, limit: 10 } } ], cursor: {}, '$db': 'sample_mflix' }, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1740782184, i: 1 }), signature: { hash: Binary.createFromBase64('tpxoW70Y+Z5HmDqaswag+matLQQ=', 0), keyId: Long('7446434162581438465') } }, operationTime: Timestamp({ t: 1740782184, i: 1 }) }