AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDB Search インデックス

このガイドでは、PHPライブラリを使用して、MongoDB Search および MongoDB ベクトル検索インデックスをプログラムで管理する方法を学ぶことができます。

MongoDB Search 機能により、MongoDB Atlas 上にホストされているコレクションに対してフルテキスト検索を実行できます。MongoDB Search の詳細については、「MongoDB Search 概要」を参照してください。

MongoDB ベクトル検索を使用すると、MongoDB Atlasに保存されているベクトル埋め込みに対してセマンティック検索を実行できます。MongoDB ベクトル検索の詳細については、MongoDB ベクトル検索の概要を参照してください。

MongoDB Search および MongoDB Vector Search インデックスを管理するために、MongoDB\Collection インスタンスで次のメソッドを使用できます。

  • MongoDB\Collection::createSearchIndex()

  • MongoDB\Collection::createSearchIndexes()

  • MongoDB\Collection::listSearchIndexes()

  • MongoDB\Collection::updateSearchIndex()

  • MongoDB\Collection::dropSearchIndex()

注意

MongoDB 検索する と MongoDB ベクトル検索 のインデックスマネジメントは非同期です

MongoDB PHPライブラリは、 MongoDB Search インデックスとMongoDB ベクトル検索インデックスを非同期に管理します。次のセクションで説明されているライブラリ メソッドは、サーバー応答をすぐに返しますが、検索インデックスへの変更はバックグラウンドで行われ、しばらくが完了しないと完了しない可能性があります。

次のセクションでは、前述の各メソッドの使用方法を示すコード例を示します。

createSearchIndex() メソッドを使用して、単一のMongoDB Search またはMongoDB ベクトル検索インデックスをコレクションに作成するか、createSearchIndexes() メソッドを使用して複数のインデックスを同時に作成します。

次のコード例は、MongoDB 検索インデックスを1つ作成する方法を示しています。

$searchIndexName = $collection->createSearchIndex(
['mappings' => ['dynamic' => true]],
['name' => 'mySearchIdx'],
);

次のコード例は、単一のMongoDB ベクトル検索インデックスを作成する方法を示しています。

$vectorSearchIndexName = $collection->createSearchIndex(
[
'fields' => [[
'type' => 'vector',
'path' => 'plot_embedding',
'numDimensions' => 1536,
'similarity' => 'dotProduct',
]],
],
['name' => 'myVSidx', 'type' => 'vectorSearch'],
);

次の例は、1回の呼び出しでMongoDB検索インデックスとベクトル検索インデックスを作成する方法を示しています。

$indexNames = $collection->createSearchIndexes(
[
[
'name' => 'SearchIdx',
'definition' => ['mappings' => ['dynamic' => true]],
],
[
'name' => 'VSidx',
'type' => 'vectorSearch',
'definition' => [
'fields' => [[
'type' => 'vector',
'path' => 'plot_embedding',
'numDimensions' => 1536,
'similarity' => 'dotProduct',
]],
],
],
],
);

MongoDB 検索インデックスまたはMongoDB ベクトル検索インデックスを作成したら、ドキュメントに対して対応するクエリタイプを実行できます。詳しくは、次のガイドを参照してください。

listSearchIndexes() メソッドを使用して、コレクションのMongoDB 検索インデックスとMongoDB ベクトル検索インデックスの配列を返すことができます。

foreach ($collection->listSearchIndexes() as $indexInfo) {
echo json_encode($indexInfo), PHP_EOL;
}

MongoDB Search またはMongoDB ベクトル検索インデックスを更新するには、updateSearchIndex() メソッドを使用します。このメソッドを使用して、既存のインデックスの名前または構成を変更できます。

次のコードは、title フィールドのシンプルなアナライザーを使用して検索インデックスを更新する方法を示しています。

$collection->updateSearchIndex(
'mySearchIdx',
['mappings' => [
'dynamic' => false,
'fields' => [
'title' => [
'type' => 'string',
'analyzer' => 'lucene.simple',
],
],
]],
);

dropSearchIndex() メソッドを使用して、MongoDB 検索する または MongoDB ベクトル検索インデックスをコレクションから除くことができます。

次のコードは、mySearchIdx という名前のMongoDB 検索インデックスを削除する方法を示しています。

$collection->dropSearchIndex('mySearchIdx');

インデックスの管理方法を示す実行可能な例を表示するには、クエリを最適化するためのインデックスを参照してください。

MongoDB Search 機能の使用方法を説明するチュートリアルを表示するには、Atlas ドキュメントのMongoDB Search を使い始めるを参照してください。

このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。