バージョン 1.17 の新機能。
定義
MongoDB\Collection::createSearchIndexes()コレクションに対して 1 つ以上のMongoDB Search またはベクトル検索インデックスを作成します。
function createSearchIndexes( array $indexes, array $options = [] ): string このコマンドは、 MongoDB Atlasでホストされている配置でのみ実行でき、少なくとも M 10の Atlas クラスター階層が必要です。 Atlas のローカル配置は、開発にも使用できます。
パラメーター
$indexes: 配列作成するインデックスを説明するドキュメントの配列。
必須の
definitionドキュメント フィールドには、作成するインデックスについて説明します。 定義構文の詳細については、「検索インデックスの定義構文 」を参照してください。任意の
namestringフィールドは、作成する検索インデックスの名前を指定します。単一のコレクションに対して、同じ名前で複数のインデックスを作成することはできません。名前を指定しない場合、デフォルトのインデックス名はdefaultです。任意の
typestringフィールドは、作成する検索インデックスのタイプを指定します。指定可能な値は'search'と'vectorSearch'です。タイプを指定しない場合、メソッドはMongoDB Searchインデックスを作成します。$options: 配列必要なオプションを指定する配列。
名前タイプ説明comment
混合
Return Values
文字列の配列として作成されたMongoDB Search およびベクトル検索インデックスの名前。
エラーと例外
MongoDB\Exception\UnsupportedExceptionオプションが使用され、選択したサーバーでサポートされていない場合(例: collation 、 readConcern 、 writeConcern )。
MongoDB\Exception\InvalidArgumentException は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB\Driver\Exception\RuntimeException は、拡張レベルのその他のエラー(例:)。
動作
MongoDB Search インデックスとベクトル検索インデックスは非同期で管理されます。インデックス を作成または更新した後、MongoDB\Collection::listSearchIndexes() を定期的に実行し、queryable 出力フィールドを確認して、使用可能かどうかを判断します。
例
動的マッピングによるインデックスの作成
次の例では、動的マッピングを使用してMongoDB 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" }