MongoDB\Collection::createSearchIndexes()
버전 1.17에 추가 되었습니다.
정의
MongoDB\Collection::createSearchIndexes()
컬렉션 에 대해 하나 이상의 Atlas Search 또는 Vector Search 인덱스를 만듭니다.
function createSearchIndexes( array $indexes, array $options = [] ): string 이 명령은 MongoDB Atlas 에 호스팅된 배포에서만 실행할 수 있으며, 10 이상의 Atlas 클러스터 계층이 필요합니다. 로컬 Atlas 배포서버 를 개발에도 사용할 수 있습니다.
매개변수
$indexes
: 배열생성할 인덱스를 설명하는 문서의 배열입니다.
필수
definition
문서 필드는 생성할 인덱스를 설명합니다. 정의 구문에 대한 자세한 내용은 Atlas Search 인덱스 정의 구문을 참조하세요.선택 사항인
name
문자열 필드 생성할 검색 인덱스 의 이름을 지정합니다. 단일 컬렉션 에 동일한 이름으로 여러 인덱스를 만들 수 없습니다. 이름을 지정하지 않으면 기본값 인덱스 이름은default
입니다.선택 사항인
type
문자열 필드 생성할 검색 인덱스 유형을 지정합니다. 허용되는 값은'search'
및'vectorSearch'
입니다. 유형을 지정하지 않으면 메서드가 Atlas Search 인덱스 생성합니다.$options
: 배열원하는 옵션을 지정하는 배열입니다.
이름유형설명comment
혼합
Return Values
생성된 Atlas Search 및 Vector Search 인덱스의 이름이 문자열 배열 로 표시됩니다.
오류/예외
옵션이 사용되지만 선택한 서버에서 지원되지 않는 경우 MongoDB\Exception\UnsupportedException
입니다(예: collation
, readConcern
, writeConcern
).
MongoDB\Exception\InvalidArgumentException
매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.
MongoDB\ 드라이버\Exception\RuntimeException 확장 수준의 다른 오류(예: 연결 오류).
행동
Atlas Search 및 Vector Search 인덱스는 비동기적으로 managed 됩니다. 인덱스 생성하거나 업데이트한 후 주기적으로 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" }