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