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