MongoDB\Collection::createSearchIndexes()
バージョン 1.17 の新機能。
定義
MongoDB\Collection::createSearchIndexes()
コレクションに 1 つ以上の Atlas Search インデックスを作成します。
function createSearchIndexes( array $indexes, array $options = [] ): string このコマンドは、 MongoDB Atlasでホストされている配置でのみ実行でき、少なくとも M 10の Atlas クラスター階層が必要です。 Atlas のローカル配置は、開発にも使用できます。
パラメーター
$indexes
: 配列作成するインデックスを説明するドキュメントの配列。
必須の
definition
ドキュメント フィールドには、作成するインデックスについて説明します。 定義構文の詳細については、「検索インデックスの定義構文 」を参照してください。任意の
name
string フィールドは、作成する検索インデックスの名前を指定します。 単一のコレクションに同じ名前で複数のインデックスを作成することはできません。 名前を指定しない場合、インデックスには「デフォルト」という名前が付けられます。$options
: 配列必要なオプションを指定する配列。
名前タイプ説明comment混合
Return Values
文字列の配列としての Atlas Search インデックスの名前。
エラーと例外
MongoDB\Exception\UnsupportedException
オプションが使用され、選択したサーバーでサポートされていない場合(例: collation
、 readConcern
、 writeConcern
)。
MongoDB\Exception\InvalidArgumentException
は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。
動作
Atlas Search インデックスは非同期で管理されます。 After creating or updating an index, you can periodically execute MongoDB\Collection::listSearchIndexes()
and check the queryable
output field to determine whether it is ready to be used.
例
動的マッピングによるインデックスの作成
次の例では、動的マッピングを使用して Atlas Search インデックスを作成し、サポートされているデータ型を含むすべてのドキュメント フィールドにインデックスを作成します。
$collection = (new MongoDB\Client)->selectCollection('test', 'articles'); $indexNames = $collection->createSearchIndexes( [ [ 'name' => 'test-search-index', 'definition' => ['mappings' => ['dynamic' => true]], ], ] ); var_dump($indexNames);
出力は次のようになります。
array(1) { [0]=> string(17) "test-search-index" }
その他の参照
MongoDB マニュアルのcreateSearchIndexesコマンドに関する参考資料
MongoDB マニュアルのAtlas Searchのドキュメント