Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル
/

Atlas Search インデックス

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

Atlas Search 機能を使うと、MongoDB Atlas でホストされているコレクションを全文検索できます。Atlas Search の詳細については、「 Atlas Search の概要」を参照してください。

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

MongoDB\Collectionインスタンスでは、次のメソッドを使用して、Atlas Search インデックスと Atlas Vector Search インデックスを管理できます。

  • MongoDB\Collection::createSearchIndex()

  • MongoDB\Collection::createSearchIndexes()

  • MongoDB\Collection::listSearchIndexes()

  • MongoDB\Collection::updateSearchIndex()

  • MongoDB\Collection::dropSearchIndex()

注意

Atlas Search と Atlas Vector Search インデックス マネジメントは非同期です。

MongoDB PHPライブラリは、Atlas Search インデックスおよび Atlas Vector Search インデックスを非同期で管理します。次のセクションで説明するライブラリメソッドは、サーバーの応答をすぐに返しますが、検索インデックスの変更はバックグラウンドで行われ、完了までにしばらく時間がかかることがあります。

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

createSearchIndex() メソッドを使用して、コレクションに単一の Atlas Search インデックスまたは Atlas Vector Search インデックスを作成するか、createSearchIndexes() メソッドを使用して複数のインデックスを同時に作成することもできます。

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

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

次のコード例は、単一の Atlas Vector Search インデックスを作成する方法を示しています。

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

次のコード例は、1 回の呼び出しで Atlas Search インデックスと Vector Search インデックスを作成する方法を示しています。

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

Atlas Search インデックスまたは Atlas Vector Search インデックスを作成したら、ドキュメントに対して対応するクエリ タイプを実行できます。詳細については、以下のガイドを参照してください。

  • 「Atlas Search クエリの実行」ガイドを参照してください

  • Atlas ベクトル検索クエリの実行ガイドを実行する

listSearchIndexes()メソッドを使用して、コレクションの Atlas Search インデックスおよび Atlas Vector Search インデックスの配列を返すことができます。

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

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

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

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

dropSearchIndex() メソッドを使用して、コレクションから Atlas Search インデックスまたは Atlas Vector Search インデックスを削除できます。

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

$collection->dropSearchIndex('mySearchIdx');

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

Atlas 検索機能の使用方法を説明するチュートリアルを表示するには、Atlas ドキュメントの「Atlas Search スタートガイド」を参照してください。

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

戻る

Multikey Indexes

項目一覧