Atlas Search インデックス
Overview
MongoDB Atlas Search機能を使用すると、Atlas でホストされているコレクションに対して全文検索を実行できます。 Atlas Search クエリを実行する前に、インデックスを作成するフィールドとインデックスの作成方法を指定するインデックスを作成する必要があります。
Atlas Search の詳細については、「 Atlas Search の概要 」を参照してください。
MongoDB\Collection
インスタンスでは次の方法を使用して、Atlas Search インデックスを管理できます。
MongoDB\Collection::createSearchIndex()
MongoDB\Collection::createSearchIndexes()
MongoDB\Collection::listSearchIndexes()
MongoDB\Collection::updateSearchIndex()
MongoDB\Collection::dropSearchIndex()
注意
Atlas Search インデックス管理は非同期
MongoDB PHPライブラリは Atlas Search インデックスを非同期で管理します。次のセクションで説明されているライブラリ メソッドは、サーバー応答をすぐに返しますが、検索インデックスへの変更はバックグラウンドで行われ、しばらくが完了しないと完了しない可能性があります。
次のセクションでは、Atlas Searchインデックスマネジメントの各メソッドの使用方法を示すコード例を示します。
検索インデックスを作成
createSearchIndex()
メソッドを使用してコレクションに単一の Atlas Searchインデックスを作成することも、 createSearchIndexes()
メソッドを使用して複数のインデックスを同時に作成することもできます。
次のコード例は、Atlas Searchインデックスを 1 つ作成する方法を示しています。
$indexName = $collection->createSearchIndex( ['mappings' => ['dynamic' => true]], ['name' => 'mySearchIdx'] );
次のコード例は、複数の Atlas Search インデックスを作成する方法を示しています。
$indexNames = $collection->createSearchIndexes( [ [ 'name' => 'SearchIdx_dynamic', 'definition' => ['mappings' => ['dynamic' => true]], ], [ 'name' => 'SearchIdx_simple', 'definition' => [ 'mappings' => [ 'dynamic' => false, 'fields' => [ 'title' => [ 'type' => 'string', 'analyzer' => 'lucene.simple' ] ] ] ], ], ] );
検索インデックスを作成 したら、コレクションに対して Atlas Search クエリを実行できます。詳細については、Atlas ドキュメントの「 Atlas Search クエリの作成と実行」を参照してください。
検索インデックスをリストする
listSearchIndexes()
メソッドを使用して、コレクションの Atlas Search インデックスの配列を返すことができます。
foreach ($collection->listSearchIndexes() as $indexInfo) { echo json_encode($indexInfo), PHP_EOL; }
検索インデックスをアップデートする
Atlas Searchインデックスを更新するには、 updateSearchIndex()
メソッドを使用します。このメソッドを使用して、検索インデックスの名前を変更したり、インデックスの構成を変更したりできます。
次のコードは、 title
フィールドで単純なアナライザを使用するように検索インデックスを更新する方法を示しています。
$collection->updateSearchIndex( 'mySearchIdx', ['mappings' => [ 'dynamic' => false, 'fields' => [ 'title' => [ 'type' => 'string', 'analyzer' => 'lucene.simple' ] ] ]] );
検索インデックスを削除する
dropSearchIndex()
メソッドを使用して、コレクションから Atlas Searchインデックスを削除できます。
次のコードは、 mySearchIdx
という名前の Atlas Searchインデックスを削除する方法を示しています。
$collection->dropSearchIndex('mySearchIdx');
詳細情報
インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用してを最適化する 」を参照してください。
Atlas Search 機能の使用方法を説明するチュートリアルを表示するには、Atlas ドキュメントの「 Atlas Search を使い始める 」を参照してください。
API ドキュメント
このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。