개요
이 가이드 에서는 Django MongoDB 백엔드를 사용하여 컬렉션 에서 Atlas Search 쿼리를 실행 방법을 학습 수 있습니다. Atlas Search 사용하면 MongoDB Atlas 에서 호스팅되는 컬렉션에서 전체 텍스트 검색을 수행할 수 있습니다. Atlas Search 인덱스는 검색 동작과 인덱스 할 필드를 지정합니다.
샘플 데이터
이 가이드 의 예제에서는 Atlas 샘플 데이터 세트의 sample_mflix.movies
및 sample_mflix.theaters
컬렉션을 나타내는 Movie
및 Theater
모델을 사용합니다. 모델 클래스에는 다음과 같은 정의가 있습니다.
from django.db import models from django.contrib.gis.db import models from django_mongodb_backend.fields import ArrayField class Movie(models.Model): title = models.CharField(max_length=200) plot = models.TextField(blank=True) runtime = models.IntegerField(default=0) genres = ArrayField(models.CharField(max_length=100), null=True, blank=True) class Meta: db_table = "movies" managed = False def __str__(self): return self.title class Theater(models.Model): theater_id = models.IntegerField(default=0, db_column="theaterId") geo = models.PointField(db_column="location.geo") class Meta: db_table = "theaters" managed = False def __str__(self): return self.theater_id
팁
GeoD장고 필드
Theater
모델은 라는 GeoD장고 를 사용하여 PointField
geo
지리 공간적 데이터를 저장 . GeoD장고 필드에 대해 자세히 학습 모델 지리 공간적 데이터 가이드 참조하세요.
Movie
및 Theater
모델에는 모델 메타데이터 지정하는 내부 Meta
클래스와 모델의 문자열 표현을 정의하는 __str__()
메서드가 포함되어 있습니다. 이러한 모델 기능에 대해 학습 모델 생성 가이드 에서 모델 정의를 참조하세요.
코드 예제 실행
Python 대화 셸 사용하여 코드 예제를 실행 수 있습니다. 셸 에 들어가려면 프로젝트의 루트 디렉토리 에서 다음 명령을 실행 .
python manage.py shell
Python 셸 입력한 후 다음 모델 및 모듈을 가져와야 합니다.
from <your application name>.models import Movie, Theater from django_mongodb_backend.expressions import ( SearchEquals, SearchAutocomplete, SearchExists, SearchIn, SearchPhrase, SearchQueryString, SearchRange, SearchRegex, SearchText, SearchWildcard, SearchGeoShape, SearchGeoWithin, SearchMoreLikeThis, CompoundExpression, SearchScoreOption )
Movie
모델과 Python 인터랙티브 셸 사용하여 MongoDB 문서와 상호 작용 장고 애플리케이션 만드는 방법을 학습하려면 시작하기 튜토리얼을 참조하세요.
Atlas Search 쿼리 실행
중요
인덱스 요구 사항
Atlas Search 쿼리 실행 전에 관련 필드에 Atlas Search 인덱스 생성해야 합니다. Atlas Search 인덱스를 만드는 방법을 학습 인덱스 만들기 가이드 에서 Atlas Search 인덱스를 참조하세요.
Atlas Search 쿼리 실행 하려면 장고의 QuerySet
API 에서 annotate()
메서드를 사용합니다. 검색 연산자 를 포함한 Atlas Search 기준을 score
인수로 annotate()
에 전달합니다. 다음 코드는 Atlas Search 쿼리 실행 위한 기본 구문을 보여줍니다.
Model.objects.annotate( score=<Search Operator>(path="<field name", <additional arguments>) )
Atlas Search 연산자를 지정하려면 django_mongodb_backend.expressions
모듈에서 제공하는 표현식 클래스를 사용합니다. 각 클래스는 Atlas Search 연산자 에 해당합니다.
다음 섹션에서는 지원되는 각 표현식 클래스를 사용하여 Atlas Search 쿼리를 실행 방법을 보여줍니다.
SearchEquals
중요
추가 인덱스 요구 사항
Atlas Search 쿼리 에서 SearchEquals
표현식 사용하기 전에 관련 필드 토큰 유형으로 인덱싱하는 Atlas Search 인덱스 만듭니다. 장고 MongoDB 백엔드의 SearchIndex
클래스를 사용하여 이 인덱스 만들 수는 없지만 MongoClient
에서 직접 작업하여 PyMongo 운전자 메서드를 사용할 수 있습니다. 자세한 학습 은 원시 데이터베이스 쿼리 수행 가이드 의 MongoClient 작업 을 참조하세요.
SearchEquals
표현식 필드 지정된 값과 같은 문서와 일치합니다. 이는 MongoDB equals 연산자에 해당합니다.
이 연산자 사용하려면 SearchEquals()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.value
: 일치시킬 값입니다. 문자열 값 또는 인스턴스 를 지정할 수Value
있습니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchEquals
연산자 사용하여 sample_mflix.movies
컬렉션 에서 title
값이 "Finding Nemo"
인 문서를 쿼리 .
Movie.objects.annotate(score=SearchEquals(path="title", value="Finding Nemo"))
SearchAutocomplete
중요
추가 인덱스 요구 사항
Atlas Search 쿼리 에서 SearchAutocomplete
표현식 사용하기 전에 관련 필드 자동 완성 유형으로 인덱싱하는 Atlas Search 인덱스 만듭니다. 장고 MongoDB 백엔드의 SearchIndex
클래스를 사용하여 이 인덱스 만들 수는 없지만 MongoClient
에서 직접 작업하여 PyMongo 운전자 메서드를 사용할 수 있습니다. 자세한 학습 은 원시 데이터베이스 쿼리 수행 가이드 의 MongoClient 작업 을 참조하세요.
SearchAutocomplete
표현식 불완전한 입력 문자열에서 일련의 문자가 포함된 단어나 구를 검색합니다. 이는 MongoDB 자동 완성 연산자에 해당합니다.
이 연산자 사용하려면 SearchAutocomplete()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.query
: 자동 완성할 입력 문자열입니다. 문자열 값 또는 인스턴스 를 지정할 수Value
있습니다.fuzzy
: (선택 사항) 퍼지 매칭을 활성화하고 그 동작을 구성할 수 있는 딕셔너리입니다. 예시 를 들어{"maxEdits": 1}
를 지정하여 검색 텀 일치하기 전에 하나의 문자 변경을 허용할 수 있습니다. 사용 가능한 모든 값을 보려면 MongoDB Atlas 문서에서 자동 완성 옵션 을 참조하세요.token_order
: (선택 사항) 토큰 시퀀스 동작을 구성하는 문자열입니다. 이 값을"sequential"
또는"any"
로 설정하다 수 있습니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchAutocomplete
표현식 사용하여 sample_mflix.movies
컬렉션 "First"
으로 시작하는 title
값을 가진 문서를 쿼리 .
Movie.objects.annotate(score=SearchAutocomplete(path="title", query="First"))
SearchExists
SearchExists
표현식 지정된 필드 존재하는 문서와 일치합니다. 이는 MongoDB exists 연산자에 해당합니다.
이 연산자 사용하려면 SearchExists()
생성자에 다음 인수를 전달합니다.
path
: 일치시킬 필드 의 이름입니다. 문자열 값 또는 인스턴스 를F
지정할 수 있습니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchExists
표현식 사용하여 sample_mflix.movies
컬렉션 에서 plot
필드 있는 문서를 쿼리 .
Movie.objects.annotate(score=SearchExists(path="plot"))
SearchIn
중요
추가 인덱스 요구 사항
Atlas Search 쿼리 에서 SearchIn
표현식 사용하기 전에 관련 필드 에 Atlas Search 인덱스 만듭니다. string
필드 쿼리하는 경우 해당 필드를 토큰 유형으로 인덱스 해야 합니다. 장고 MongoDB 백엔드의 SearchIndex
클래스를 사용하여 이 인덱스 만들 수는 없지만 MongoClient
에서 직접 작업하여 PyMongo 운전자 메서드를 사용할 수 있습니다. 자세한 학습 은 원시 데이터베이스 쿼리 수행 가이드 의 MongoClient 작업 을 참조하세요.
SearchIn
표현식 필드 값이 지정된 목록에 있는 문서와 일치합니다. 이는 MongoDB in 연산자에 해당합니다.
이 연산자 사용하려면 SearchIn()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.value
: 일치시킬 값의 목록입니다. 값 목록 또는Value
인스턴스 를 지정할 수 있습니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchIn
표현식 사용하여 sample_mflix.movies
컬렉션 에서 runtime
값이 100
, 200
또는 300
분인 문서를 쿼리 .
Movie.objects.annotate(score=SearchIn(path="runtime", value=[100, 200, 300]))
SearchPhrase
SearchPhrase
표현식 필드 에 있는 용어의 정확하거나 거의 정확한 시퀀스와 일치합니다. 이는 MongoDB 구문 연산자에 해당합니다.
이 연산자 사용하려면 SearchPhrase()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.query
: 일치시킬 구문입니다. 문자열 또는 문자열 목록을 지정할 수 있습니다.slop
: (선택 사항) 구문 용어 사이에 허용되는 최대 용어 수입니다.synonyms
: (선택 사항) Atlas Search 인덱스에 정의된 동의어 매핑의 이름입니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchPhrase
표현식 사용하여 sample_mflix.movies
컬렉션 쿼리 plot
필드 에 "space adventure"
구문이 있고 이러한 용어 사이에 최대 2
단어가 허용되는 문서를 쿼리합니다.
Movie.objects.annotate(score=SearchPhrase(path="plot", query="space adventure", slop=2))
SearchQueryString
SearchQueryString
연산자 사용하면 string
필드에서 텍스트, 와일드카드, 정규 표현식, 퍼지 및 범위 검색을 수행할 수 있습니다. 이는 MongoDB queryString 연산자에 해당합니다.
이 연산자 사용하려면 SearchQueryString()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.query
: 루센 스타일의 쿼리 문자열입니다. 루센 쿼리 구문에 대해 자세히 학습 Apache 루센 설명서를 참조하세요.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchQueryString
표현식 사용하여 sample_mflix.movies
컬렉션 에서 plot
필드 의 루센 스타일 쿼리 와 일치하는 문서를 쿼리 .
Movie.objects.annotate(score=SearchQueryString(path="plot", query="romance AND (paris OR tokyo)"))
SearchRange
중요
추가 인덱스 요구 사항
Atlas Search 쿼리 에서 SearchRange
표현식 사용하기 전에 관련 필드 에 Atlas Search 인덱스 만듭니다. string
필드 쿼리하는 경우 해당 필드를 토큰 유형으로 인덱스 해야 합니다. 장고 MongoDB 백엔드의 SearchIndex
클래스를 사용하여 이 인덱스 만들 수는 없지만 MongoClient
에서 직접 작업하여 PyMongo 운전자 메서드를 사용할 수 있습니다. 자세한 학습 은 원시 데이터베이스 쿼리 수행 가이드 의 MongoClient 작업 을 참조하세요.
SearchRange
표현식 지정된 범위 내의 값을 검색합니다. 숫자, 날짜, 문자열 또는 ObjectId
값의 범위 제공할 수 있습니다. 이는 MongoDB 범위 연산자에 해당합니다.
이 연산자 사용하려면 SearchRange()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.lt
: (선택 사항) 배타적 상한(<
)lte
: (선택 사항) 포함 상한(<=
)gt
: (선택 사항) 배타적 하한값(>
)gte
: (선택 사항) 포괄적 하한(>=
)score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 에서는 SearchRange
표현식 사용하여 sample_mflix.movies
컬렉션 에서 runtime
값이 90
~ 120
분인 문서를 쿼리 .
Movie.objects.annotate(score=SearchRange(path="runtime", gt=90, lt=120))
SearchRegex
SearchRegex
표현식 정규 표현식 사용하여 문자열 필드 값과 일치합니다. 이는 MongoDB 정규식 연산자에 해당합니다.
이 연산자 사용하려면 SearchRegex()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.query
: 필드 콘텐츠를 검색 데 사용되는 정규 표현식 문자열입니다.allow_analyzed_field
: (선택 사항) 분석된 필드와의 일치를 허용할지 여부를 나타내는 부울 값입니다. 기본값 은False
입니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchRegex
표현식 사용하여 sample_mflix.movies
컬렉션 에서 "winter"
라는 단어가 포함된 title
값을 가진 문서를 쿼리 .
Movie.objects.annotate(score=SearchRegex(path="title", query=r".*winter.*"))
텍스트 검색
SearchText
표현식 문자열 필드에서 전체 텍스트 검색 수행합니다. 이는 MongoDB 텍스트 연산자에 해당합니다.
이 연산자 사용하려면 SearchText()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.query
: 검색 또는 구문 .fuzzy
: (선택 사항) 퍼지 매칭을 활성화하고 그 동작을 구성할 수 있는 딕셔너리입니다. 예시 를 들어{"maxEdits": 1}
를 지정하여 검색 텀 일치하기 전에 하나의 문자 변경을 허용할 수 있습니다.match_criteria
: (선택 사항) 검색 의"all"
또는"any"
가 포함된 문서를 일치시킬지 여부입니다. 기본값 은"any"
입니다.synonyms
: (선택 사항) Atlas 인덱스에 정의된 동의어 매핑의 이름입니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchText
표현식 사용하여 sample_mflix.movies
컬렉션 쿼리 하여 plot
필드 에 "sudden disappearance"
가 있고 퍼지 일치가 활성화된 문서를 쿼리합니다.
Movie.objects.annotate(score=SearchText( path="plot", query="sudden disappearance", fuzzy={"maxEdits": 2}, match_criteria="all" ))
Search와일드카드
SearchWildcard
표현식 와일드카드 패턴을 사용하여 문자열을 일치시킵니다. 이는 MongoDB 와일드카드 연산자에 해당합니다.
이 연산자 사용하려면 SearchWildcard()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.query
: 모든 문자 시퀀스와 일치하는*
문자와 단일 문자와 일치하는?
문자를 포함할 수 있는 와일드카드 문자열입니다.allow_analyzed_field
: (선택 사항) 분석된 필드와의 일치를 허용하는 부울 값입니다. 기본값 은False
입니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchWildcard
표현식 사용하여 sample_mflix.movies
컬렉션 에 "Star"
로 시작하고 임의의 문자로 끝나는 title
가 있는 문서를 쿼리 .
Movie.objects.annotate(score=SearchWildcard(path="title", query="Star*"))
SearchGeoShape
중요
추가 인덱스 요구 사항
Atlas Search 쿼리 에서 표현식 사용하기 전에 속성 로 설정하다 지역 유형으로 관련 SearchGeoShape
필드 인덱싱하는 Atlas Search 인덱스 indexShapes
true
만듭니다. 장고 MongoDB 백엔드의 SearchIndex
클래스를 사용하여 이 인덱스 만들 수는 없지만 MongoClient
에서 직접 작업하여 PyMongo 운전자 메서드를 사용할 수 있습니다. 자세한 학습 은 원시 데이터베이스 쿼리 수행 가이드 의 MongoClient 작업 을 참조하세요.
SearchGeoShape
표현식 도형과의 공간적 관계를 기반으로 문서를 필터링합니다. 이는 MongoDB geoShape 연산자에 해당합니다.
이 연산자 사용하려면 SearchGeoShape()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.relation
: 테스트할 공간적 관계입니다. 유효한 값은"within"
,"intersects"
,"disjoint"
입니다.geometry
: 비교할 GeoJSON 도형 객체 .score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchGeoShape
표현식 사용하여 지정된 다각형 내에 geo
값이 있는 문서의 sample_mflix.theaters
컬렉션 쿼리 .
chicago = { "type": "Polygon", "coordinates": [ [ [-87.851, 41.976], [-87.851, 41.653], [-87.651, 41.653], [-87.651, 41.976], [-87.851, 41.976], ] ] } theaters = Theater.objects.annotate(score=SearchGeoShape( path="geo", relation="within", geometry=chicago ))
SearchGeoWithin
중요
추가 인덱스 요구 사항
Atlas Search 쿼리 에서 SearchGeoWithin
표현식 사용하기 전에 쿼리 필드 지역 유형으로 인덱싱하는 Atlas Search 인덱스 만듭니다. 장고 MongoDB 백엔드의 SearchIndex
클래스를 사용하여 이 인덱스 만들 수는 없지만 MongoClient
에서 직접 작업하여 PyMongo 운전자 메서드를 사용할 수 있습니다. 자세한 학습 은 원시 데이터베이스 쿼리 수행 가이드 의 MongoClient 작업 을 참조하세요.
SearchGeoWithin
표현식 지정된 도형 내에 지리적 필드가 포함된 문서를 필터링합니다. 이는 MongoDB geoWithin 연산자에 해당합니다.
이 연산자 사용하려면 SearchGeoWithin()
생성자에 다음 인수를 전달합니다.
path
: 검색 할 필드 의 이름입니다. 문자열 값 또는 인스턴스 를 지정할 수F
있습니다.kind
: GeoJSON 도형 유형:"circle"
,"box"
또는"geometry"
.geometry
: 공간 경계를 정의하는 GeoJSON 도형입니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchGeoWithin
연산자 사용하여 sample_mflix.theaters
컬렉션 에서 지정된 원 내에 geo
값이 있는 문서를 쿼리 .
circle = { "center": {"type": "Point", "coordinates": [-73.98, 40.75]}, "radius": 5000 } theaters = Theater.objects.annotate(score=SearchGeoWithin( path="geo", kind="circle", geometry=circle ))
SearchMoreLikeThis
SearchMoreLikeThis
표현식 제공된 예제와 유사한 문서를 찾습니다. 이는 MongoDB moreLikeThis 연산자에 해당합니다.
이 연산자 사용하려면 SearchMoreLikeThis()
생성자에 다음 인수를 전달합니다.
documents
: 유사성에 대한 참조 제공 을 하는 예시 문서 또는 표현식의 목록입니다.score
: (선택 사항) 관련성 점수를 구성하는 SearchScoreOption 인스턴스 .
다음 예시 SearchMoreLikeThis
표현식 사용하여 sample_mflix.movies
컬렉션 에서 제공된 예시 문서 와 유사한 문서를 쿼리 .
Movie.objects.annotate(score=SearchMoreLikeThis([ {"title": "The Godfather"}, {"genres": ["Crime", "Drama"]} ]))
표현식 결합
다음과 같은 방법으로 여러 검색 표현식을 결합하는 Atlas Search 쿼리를 수행할 수 있습니다.
복합 표현식 클래스 사용
CompoundExpression
표현식 사용하면 부울 로직을 사용하여 여러 Atlas Search 표현식을 결합할 수 있습니다. 이는 MongoDB 복합 연산자에 해당합니다.
다음 인수 중 하나 이상을 CompoundExpression()
생성자에 전달해야 합니다.
must
: 문서가 일치해야 하는 표현식 목록should
: 문서가 일치해야 하는 표현식 목록must_not
: 문서가 일치하지 않아야 하는 표현식 목록filter
: 결과를 필터하다 하는 표현식 목록
다음과 같은 선택적 인수를 전달할 수도 있습니다.
minimum_should_match
: 문서가 일치해야 하는should
절의 최소 개수입니다.
이 예시 CompoundExpression
표현식 사용하여 sample_mflix.movies
컬렉션 에서 다음 기준과 일치하는 문서를 쿼리 .
plot
필드 존재plot
필드 에 텍스트가 포함되어 있습니다."fast-paced"
genres
필드"Romance"
또는"Comedy"
이(가) 포함되지 않음
plot_exists = SearchExists(path="plot") plot_text = SearchText(path="plot", query="fast-paced") genres_range = SearchIn(path="genres", value=["Romance", "Comedy"]) Movie.objects.annotate( score=CompoundExpression( must=[plot_exists, plot_text], must_not=[genres_range] ) )
비트 연산자 사용
다음 비트 연산자를 사용하여 Atlas Search 표현식을 결합할 수 있습니다.
&
: 논리적 AND 연산을 나타냅니다.|
: 논리적 OR 연산을 나타냅니다.~
: 논리적 NOT 연산을 나타냅니다.
이 예시 |
연산자 사용하여 sample_mflix.movies
컬렉션 에서 다음 기준 중 하나 또는 둘 다와 일치하는 문서를 쿼리 .
plot
필드 에 텍스트가 포함되어 있습니다."heartwarming"
genres
필드 에"Romance"
또는"Comedy"
이 포함됩니다.
expr = SearchText(path="plot", query="heartwarming") | SearchIn(path="genres", value=["Romance", "Comedy"]) Movie.objects.annotate(score=expr)
관련성 점수 구성
MongoDB Atlas Search 쿼리 에서 반환되는 모든 문서 에 관련성 점수를 할당합니다. 결과 설정하다 에 포함된 문서는 관련성 점수가 가장 높은 순서에서 가장 낮은 순서로 정렬됩니다.
SearchScoreOption
표현식 사용하여 MongoDB 관련성 점수를 계산하고 적용하는 방법을 사용자 지정할 수 있습니다. SearchScoreOption()
생성자는 다음 인수를 허용합니다.
boost
: 지정된 표현식 과 일치하는 문서의 점수를 높입니다.constant
: 모든 매치에 고정 점수를 적용합니다.function
: 점수를 계산하는 함수를 적용합니다.path
: 필드 값에 따라 문서 점수 매기기
팁
관련성 점수에 대해 자세히 학습하려면 MongoDB Atlas 문서의 결과에서 문서 점수 매기기 를 참조하세요.
다음 예시 SearchEquals
표현식 과 일치하는 문서의 관련성 점수를 3
배 높입니다.
boost = SearchScoreOption({"boost": {"value": 3}}) Movie.objects.annotate( score=SearchEquals( path="title", value="Life of Pi", score=boost ) )
추가 정보
Atlas Search 인덱스 생성에 대해 자세히 학습하려면 인덱스 생성 가이드에서 Atlas Search 인덱스 를 참조하세요.
Atlas Search 쿼리에 대해 자세히 학습하려면 MongoDB Atlas 설명서에서 Atlas Search 개요 를 참조하세요.