개요
이 가이드 에서는 PHP 라이브러리를 사용하여 MongoDB Search 및 MongoDB Vector Search 인덱스를 프로그래밍 방식으로 관리 방법을 학습 수 있습니다.
MongoDB Search 기능 사용하면 MongoDB Atlas 에서 호스팅되는 컬렉션에서 전체 텍스트 검색을 수행할 수 있습니다. MongoDB Search에 대해 자세히 학습 MongoDB Search 개요를 참조하세요.
MongoDB Vector Search를 사용하면 MongoDB Atlas 에 저장된 벡터 임베딩에 대해 시맨틱 검색을 수행할 수 있습니다. MongoDB Vector Search에 대해 자세히 학습 MongoDB Vector Search 개요를 참조하세요.
MongoDB\Collection 인스턴스 에서 다음 메서드를 사용하여 MongoDB Search 및 MongoDB Vector Search 인덱스를 관리 수 있습니다.
MongoDB\Collection::createSearchIndex()MongoDB\Collection::createSearchIndexes()MongoDB\Collection::listSearchIndexes()MongoDB\Collection::updateSearchIndex()MongoDB\Collection::dropSearchIndex()
참고
MongoDB Search 및 MongoDB Vector Search 인덱스 관리는 비동기식입니다.
MongoDB PHP 라이브러리는 MongoDB 검색 및 MongoDB 벡터 검색 인덱스를 비동기적으로 관리합니다. 다음 섹션에서 설명하는 라이브러리 메서드는 서버 응답을 즉시 반환하지만 검색 인덱스에 대한 변경 사항은 배경 에서 발생하며 잠시 후까지 완료되지 않을 수 있습니다.
다음 섹션에서는 코드 예시를 제공하여 이전의 각 메서드를 사용하는 방법을 보여줍니다.
검색 인덱스 만들기
createSearchIndex() 메서드를 사용하여 컬렉션 에 단일 MongoDB Search 또는 MongoDB Vector Search 인덱스 생성하거나 createSearchIndexes() 메서드를 사용하여 여러 인덱스를 동시에 생성할 수 있습니다.
다음 코드 예시 단일 MongoDB Search 인덱스 생성하는 방법을 보여줍니다.
$searchIndexName = $collection->createSearchIndex( ['mappings' => ['dynamic' => true]], ['name' => 'mySearchIdx'], );
다음 코드 예시 단일 MongoDB Vector Search 인덱스 생성하는 방법을 보여줍니다.
$vectorSearchIndexName = $collection->createSearchIndex( [ 'fields' => [[ 'type' => 'vector', 'path' => 'plot_embedding', 'numDimensions' => 1536, 'similarity' => 'dotProduct', ]], ], ['name' => 'myVSidx', 'type' => 'vectorSearch'], );
다음 코드 예시 한 번의 호출로 MongoDB Search 및 Vector Search 인덱스를 생성하는 방법을 보여줍니다.
$indexNames = $collection->createSearchIndexes( [ [ 'name' => 'SearchIdx', 'definition' => ['mappings' => ['dynamic' => true]], ], [ 'name' => 'VSidx', 'type' => 'vectorSearch', 'definition' => [ 'fields' => [[ 'type' => 'vector', 'path' => 'plot_embedding', 'numDimensions' => 1536, 'similarity' => 'dotProduct', ]], ], ], ], );
MongoDB Search 또는 MongoDB Vector Search 인덱스를 생성한 후 문서에서 해당 쿼리 유형을 수행할 수 있습니다. 자세히 학습 다음 가이드를 참조하세요.
검색 인덱스 나열
listSearchIndexes() 메서드를 사용하여 컬렉션 에서 MongoDB Search 및 MongoDB Vector Search 인덱스의 배열 반환할 수 있습니다.
foreach ($collection->listSearchIndexes() as $indexInfo) { echo json_encode($indexInfo), PHP_EOL; }
검색 인덱스 업데이트
updateSearchIndex() 메서드를 사용하여 MongoDB Search 또는 MongoDB Vector Search 인덱스 업데이트 수 있습니다. 이 메서드를 사용하여 기존 인덱스 의 이름이나 구성을 변경할 수 있습니다.
다음 코드는 title 필드에서 간단한 분석기를 사용하도록 검색 인덱스를 업데이트하는 방법을 보여줍니다.
$collection->updateSearchIndex( 'mySearchIdx', ['mappings' => [ 'dynamic' => false, 'fields' => [ 'title' => [ 'type' => 'string', 'analyzer' => 'lucene.simple', ], ], ]], );
검색 인덱스 삭제
dropSearchIndex() 메서드를 사용하여 컬렉션 에서 MongoDB Search 또는 MongoDB Vector Search 인덱스 제거 수 있습니다.
다음 코드는 mySearchIdx이라는 이름의 MongoDB Search 인덱스 삭제 방법을 보여줍니다.
$collection->dropSearchIndex('mySearchIdx');
추가 정보
인덱스를 관리하는 방법을 보여주는 실행 가능한 예시는 쿼리 최적화를 위한 인덱스를 참조하세요.
MongoDB Search 기능 사용 방법을 설명하는 튜토리얼을 보려면 Atlas 설명서에서 MongoDB Search 시작하기를 참조하세요.
API 문서
이 가이드에서 설명하는 메서드에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.