Docs Menu

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 인덱스를 생성한 후 문서에서 해당 쿼리 유형을 수행할 수 있습니다. 자세한 내용은 다음 가이드를 참조하세요.

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 설명서를 참조하세요.