Docs Menu
Docs Home
/ /

MongoDB 검색 인덱스

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

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

돌아가기

Multikey Indexes

이 페이지의 내용