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フィールドは、作成する検索インデックスの名前を指定します。単一のコレクションに対して、同じ名前で複数のインデックスを作成することはできません。名前を指定しない場合、デフォルトのインデックス名はdefault
です。任意の
type
stringフィールドは、作成する検索インデックスのタイプを指定します。指定可能な値は'search'
と'vectorSearch'
です。タイプを指定しない場合、 メソッドは Atlas Searchインデックスを作成します。$options
: 配列必要なオプションを指定する配列。
名前タイプ説明comment
混合
Return Values
文字列の配列として作成された Atlas Search およびベクトル検索インデックスの名前。
エラーと例外
MongoDB\Exception\UnsupportedException
オプションが使用され、選択したサーバーでサポートされていない場合(例: collation
、 readConcern
、 writeConcern
)。
MongoDB\Exception\InvalidArgumentException
は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。
動作
Atlas Search インデックスとベクトル検索インデックスは非同期で管理されます。インデックスを作成または更新した後、MongoDB\Collection::listSearchIndexes()
を定期的に実行し、queryable
出力フィールド を確認して、使用可能かどうかを判断します。
例
動的マッピングによるインデックスの作成
次の例では、動的マッピングを使用して Atlas Search インデックスを作成し、サポートされているデータ型を含むすべてのドキュメント フィールドにインデックスを作成します。
$collection = (new MongoDB\Client)->getCollection('test', 'articles'); $indexNames = $collection->createSearchIndexes( [ [ 'name' => 'test-search-index', 'definition' => ['mappings' => ['dynamic' => true]], ], ] ); var_dump($indexNames);
出力は次のようになります。
array(1) { [0]=> string(17) "test-search-index" }
その他の参照
Atlas Search Indexes guide
MongoDB マニュアルのcreateSearchIndexesコマンドに関する参考資料
MongoDB マニュアルのAtlas Searchのドキュメント