Docs Menu
Docs Home
/ / /
Laravel MongoDB
/

Atlas Search

이 가이드에서는 Atlas Search 기능을 사용하여 문서에서 검색하는 방법을 학습할 수 있습니다. Laravel MongoDB는 모델을 직접 사용하여 Atlas Search 쿼리를 수행할 수 있는 API를 제공합니다. 본 가이드는 Atlas Search 인덱스를 생성하는 방법을 설명하고 Laravel 통합을 사용하여 검색을 수행하는 방법의 예시를 제공합니다.

참고

배포 호환성

Atlas Search 기능 MongoDB Atlas 클러스터에 연결한 경우에만 사용할 수 있습니다. 이 기능 자체 관리형 배포서버에는 사용할 수 없습니다.

Atlas Search에 대해 자세히 알아보려면 Atlas 문서의 개요를 참조하세요. Atlas Search API는 내부적으로 $search 집계 연산자를 사용하여 쿼리를 수행합니다. 연산자에 대해 자세히 알아보려면 Atlas 문서의 $search 참조를 확인하세요.

참고

이 가이드에서 설명한 방법을 모든 유형의 Atlas Search 쿼리에 적용하지 못할 수 있습니다. 더 복잡한 사용 사례의 경우 집계 빌더를 사용하여 집계 파이프라인을 생성하세요.

MongoDB에서 벡터 임베딩 검색을 수행하려면 Laravel MongoDB Atlas Vector Search API를 사용할 수 있습니다. 이 기능에 대해 자세히 알아보려면 Atlas Vector Search 가이드를 참조하세요.

다음 방법 중 하나를 사용하여 Atlas Search 인덱스 만들 수 있습니다.

  • Schema 파사드에서 create() 메서드를 호출하고 인덱스 생성 세부 정보가 포함된 searchIndex() 헬퍼 메서드를 전달합니다. 이 전략에 대해 자세히 학습 스키마 빌더 가이드 의 Atlas Search 및 Vector Search 인덱스 관리 섹션을 참조하세요.

  • 컬렉션에 액세스한 후 다음 코드에 표시된 대로 MongoDB PHP 라이브러리에서 createSearchIndex() 메서드를 호출하세요.

    $collection = DB::connection('mongodb')->getCollection('movies');
    $collection->createSearchIndex(
    ['mappings' => ['dynamic' => true]],
    ['name' => 'search_index']
    );

이 섹션에서는 Laravel 통합에서 Atlas Search API를 사용하는 방법을 학습할 수 있습니다.

Laravel 통합은 search() 메서드를 쿼리 빌더 메서드 및 Eloquent 모델 메서드로 제공합니다. search() 메서드를 사용하여 컬렉션의 문서에 대해 Atlas Search 쿼리를 실행할 수 있습니다.

search() 메서드에 SearchOperatorInterface의 인스턴스 또는 연산자 유형, 필드 이름 및 쿼리 값을 포함하는 배열인 operator 매개 변수를 전달해야 합니다. Search::text() 메서드를 호출하고 쿼리할 필드와 검색어 또는 구문을 전달하여 SearchOperatorInterface 인스턴스를 생성할 수 있습니다.

SearchOperatorInterface 인스턴스를 생성하려면 애플리케이션에 다음 import 문을 포함해야 합니다.

use MongoDB\Builder\Search;

다음 코드는 Movie 모델의 title 필드에서 'dream' 용어에 대한 Atlas Search 쿼리를 수행합니다.

$movies = Movie::search(
sort: ['title' => 1],
operator: Search::text('title', 'dream'),
)->all();
[
{ "title": "Dreaming of Jakarta",
"year": 1990
},
{ "title": "See You in My Dreams",
"year": 1996
}
]

search() 메서드를 사용하여 다양한 유형의 Atlas Search 쿼리를 수행할 수 있습니다. 원하는 쿼리에 따라 다음의 선택 사항 매개변수를 search()에 전달할 수 있습니다.

선택적 매개변수
유형
설명

index

string

사용하려는 Atlas Search 인덱스의 이름 제공

highlight

array

검색어를 원래 문맥에 맞게 표시하기 위한 하이라이트 옵션 지정

concurrent

bool

전용 검색 노드에서 여러 세그먼트에 걸쳐 검색 쿼리 병렬화

count

string

결과의 개수를 검색하기 위한 수량 옵션 지정

searchAfter

string

문서를 반환하기 위해 해당 지점 바로 다음부터 시작하는 참조점 지정

searchBefore

string

문서를 반환하기 위해 해당 지점 바로 이전부터 시작하는 참조점 지정

scoreDetails

bool

결과에 대한 점수의 자세한 분석을 조회할지 여부 지정

sort

array

결과를 정렬할 필드 지정

returnStoredSource

bool

백엔드 데이터베이스에서 전체 문서 조회 수행 또는 Atlas Search에 저장된 소스 필드만 직접 반환 중에서 지정

tracking

array

검색어에 대한 분석 정보를 조회하기 위한 추적 옵션 지정

이러한 매개변수에 대해 자세히 $search 학습 Atlas 문서에서 연산자 참조의 필드 섹션을 참조하세요.

Laravel 통합은 autocomplete() 메서드를 쿼리 빌더 메서드 및 Eloquent 모델 메서드로 제공합니다. autocomplete() 메서드를 사용하여 컬렉션의 문서에 대해 자동 완성 검색을 실행할 수 있습니다. 이 메서드는 쿼리 경로로 지정한 필드의 값만 반환합니다.

이 유형의 Atlas Search 쿼리에 대해 더 알아보려면 Atlas 문서의 자동 완성 참조를 확인하세요.

참고

자동 완성 검색을 수행하기 전에 컬렉션에 자동 완성 구성이 포함된 Atlas Search 인덱스를 생성해야 합니다. Search 인덱스 생성에 대해 자세히 알아보려면 가이드의 Atlas Search 인덱스 생성 섹션을 참조하세요.

다음 코드는 title 필드에서 문자열 "jak"에 대한 Atlas Search 자동 완성 쿼리를 수행합니다.

$movies = Movie::autocomplete('title', 'jak')->all();
[
"Dreaming of Jakarta",
"Jakob the Liar",
"Emily Calling Jake"
]

다음 선택 사항 매개변수를 autocomplete() 메서드에 전달하여 쿼리를 사용자 지정할 수도 있습니다.

선택적 매개변수
유형
설명
기본값

fuzzy

bool or array

퍼지 검색 및 퍼지 검색 옵션을 활성화합니다.

false

tokenOrder

string

토큰을 검색할 순서를 지정합니다

'any'

이러한 매개변수에 대한 자세한 내용은 Atlas 문서의 autocomplete 연산자 참조의 옵션 섹션을 참조하세요.

돌아가기

집계 빌더

이 페이지의 내용

  • 개요
  • Atlas Search 인덱스 만들기
  • 쿼리 수행
  • 일반 쿼리
  • 자동 완성 쿼리