Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼
/

Atlas Search

이 가이드에서는 Atlas Search 기능을 사용하여 문서를 검색하는 방법을 알아볼 수 있습니다. PHP 라이브러리를 사용하면 집계 빌더를 사용하여 Atlas Search 쿼리를 수행할 수 있습니다.

참고

배포 호환성

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

Atlas Search에 대한 자세한 내용은 Atlas Search 개요를 참조하세요. PHP 라이브러리의 Atlas Search 구현은 내부적으로 $search 집계 연산자를 사용하여 쿼리를 수행합니다. 이 연산자에 대한 자세한 내용은 Atlas 문서의 $search 참조를 확인하세요.

참고

Atlas Vector Search

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

Atlas Search 쿼리를 수행하려면 먼저 컬렉션 에 Atlas Search 인덱스 만들어야 합니다. 이 인덱스 유형을 만드는 방법에 대해 자세히 학습 Atlas Search 인덱스 가이드 참조하세요.

애그리게이션 빌더를 사용하여 Atlas Search 쿼리를 수행하려면 다음 클래스를 애플리케이션 으로 가져옵니다.

use MongoDB\Builder\Pipeline;
use MongoDB\Builder\Search;
use MongoDB\Builder\Stage;

집계 파이프라인 에서 $search 단계를 만들려면 다음 작업을 수행합니다.

  1. 파이프라인 단계를 저장 Pipeline 인스턴스 를 만듭니다.

  2. Stage::search() 메서드를 호출하여 Atlas Search 단계를 만듭니다.

  3. search() 메서드의 본문에서 Search 빌더 클래스의 메서드를 사용하여 검색 쿼리 기준을 구성합니다.

다음 코드는 기본 Atlas Search 쿼리를 구성하기 위한 템플릿을 보여줍니다.

$pipeline = new Pipeline(
Stage::search(
/* Atlas Search query specifications
Search::compound(...) */
),
);

이 섹션에서는 집계 빌더를 사용하여 다양한 유형의 Atlas Search 쿼리를 수행하는 방법을 알아봅니다. 이 섹션의 예시에서는 sample_restaurants.restaurants 컬렉션의 샘플 데이터를 사용합니다.

두 개 이상의 연산자를 단일 쿼리로 결합하려면 Search::compound() 메서드를 사용합니다. 이 메서드는 mustfilter와 같은 절에 대해 명명된 인수를 사용합니다. 각 절에서 Search::text() 메서드를 사용해 전체 텍스트 검색을 수행할 때 찾을 문자열을 지정합니다.

이 예시는 다음 사양을 가진 Atlas Search 쿼리를 수행합니다.

  • name 필드 에서 "kitchen"문자열을 검색 must 절을 포함합니다.

  • cuisine 필드에 "american"가 포함된 문서를 높은 순위로 평가하기 위한 should 절을 포함합니다

  • borough 값이 "Queens" 인 문서만 결과에 포함하는 filter 필드 포함합니다.

$pipeline = new Pipeline(
Stage::search(
Search::compound(
must: [
Search::text(
query: 'kitchen',
path: 'name',
),
],
should: [
Search::text(
query: 'american',
path: 'cuisine',
),
],
filter: [
Search::text(
query: 'Queens',
path: 'borough',
),
],
),
),
Stage::project(
borough: 1,
cuisine: 1,
name: 1
),
Stage::limit(3)
);
$cursor = $collection->aggregate($pipeline);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":...,"borough":"Queens","cuisine":"American","name":"Kitchen Door"}
{"_id":...,"borough":"Queens","cuisine":"American","name":"Cc Kitchen"}
{"_id":...,"borough":"Queens","cuisine":"American","name":"Suite Kitchen"}
// Results truncated

PHP 라이브러리는 컬렉션의 문서에서 자동 완성 검색을 실행하는 Search::autocomplete() 메서드를 제공합니다.

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

참고

Atlas Search 인덱스가 자동 완성 쿼리를 위해 구성되어야 합니다. 자세한 내용은 Atlas 문서에서 자동 완성을 위한 필드 인덱싱 방법 을 참조하세요.

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

$pipeline = new Pipeline(
Stage::search(
Search::autocomplete(
query: 'Lucy',
path: 'name',
),
),
Stage::limit(3),
Stage::project(_id: 0, name: 1),
);
$cursor = $collection->aggregate($pipeline);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"name":"Juicy Lucy"}
{"name":"Lucy'S Vietnamese Kitchen"}
{"name":"Lucy'S Cantina Royale"}
// Results Truncated

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

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

fuzzy

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

false

tokenOrder

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

'any'

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

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 문서에서 연산자 참조의 필드 섹션을 참조하세요.

돌아가기

데이터 집계

이 페이지의 내용

  • 개요
  • Atlas Search 인덱스
  • 검색 애그리게이션 단계
  • Atlas Search 쿼리 예시
  • 필터가 있는 복합 쿼리
  • 자동 완성 쿼리
  • 검색 옵션