Atlas Search
개요
이 가이드 에서는 PyMongo 애플리케이션에서 Atlas Search 인덱스 쿼리 하고 고급 전체 텍스트 검색 기능을 사용하는 방법을 학습 수 있습니다. $search
집계 파이프라인 단계를 사용하여 검색 인덱스 쿼리 할 수 있습니다.
$search
파이프라인 단계에 대해 자세히 학습 MongoDB Server 매뉴얼의 $ 검색 가이드 참조하세요.
참고
Atlas for MongoDB v4.2 이상에서만 사용 가능
$search
집계 파이프라인 연산자는 Atlas Search 인덱스가 적용되고 MongoDB v4.2 이상을 실행하는 MongoDB Atlas 클러스터에서 호스팅되는 컬렉션에만 사용할 수 있습니다. 이 연산자의 필수 설정 및 기능에 대한 자세한 내용은 Atlas Search 설명서를 참조하세요.
샘플 데이터
이 가이드 의 예제에서는 Atlas 샘플 데이터 세트의 sample_mflix.movies
컬렉션 사용합니다. 무료 MongoDB Atlas cluster 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 PyMongo 시작하기를 참조하세요.
Atlas Search 인덱스 만들기
Atlas 컬렉션 에서 검색 수행하려면 먼저 컬렉션 에 Atlas Search 인덱스 만들어야 합니다. Atlas Search 인덱스 데이터를 검색 가능한 형식으로 분류하는 데이터 구조입니다. Atlas Search 인덱스 만드는 방법을 학습 Atlas Search 및 Vector Search 인덱스를 참조하세요.
데이터 검색
$search
집계 파이프라인 단계를 사용하려면 실행 하려는 쿼리 유형을 나타내는 Atlas Search 쿼리 연산자 지정해야 합니다. 선택적으로 값이나 범위별로 결과를 그룹화하는 수집기를 지정할 수도 있습니다. Atlas Search 에서 사용할 수 있는 모든 연산자 및 수집기의 표를 보려면 Atlas Search 쿼리에서 연산자 및 수집기 사용을 참조하세요.
다음 예시 연산자 사용하여 compound
여러 연산자를 단일 쿼리 로 결합합니다. 연산자 에 대해 compound
자세히 학습 MongoDB Atlas 설명서에서 복합 연산자 가이드 참조하세요.
쿼리 에는 다음과 같은 검색 기준이 있습니다.
genres
필드Comedy
이 포함되어서는 안 됩니다.title
필드New York
문자열이 포함되어야 합니다.
쿼리 다음 단계도 포함됩니다.
client = pymongo.MongoClient("<connection-string>") result = client["sample_mflix"]["movies"].aggregate([ { "$search": { "index": "pymongoindex", "compound": { "mustNot": [ { "text": { "query": [ "Comedy" ], "path": "genres" } } ], "must": [ { "text": { "query": [ "New York" ], "path": "title" } } ], } } }, { "$limit": 10 }, { "$project": { "_id": 0, "title": 1, "score": { "$meta": "searchScore" } } } ]) for i in result: print(i)
{'title': 'New York, New York', 'score': 6.786379814147949} {'title': 'New York', 'score': 6.258603096008301} {'title': 'New York Doll', 'score': 5.381444931030273} {'title': 'Escape from New York', 'score': 4.719935417175293} {'title': 'Autumn in New York', 'score': 4.719935417175293} {'title': 'Sleepless in New York', 'score': 4.719935417175293} {'title': 'Gangs of New York', 'score': 4.719935417175293} {'title': 'Sherlock Holmes in New York', 'score': 4.203253746032715} {'title': 'New York: A Documentary Film', 'score': 4.203253746032715} {'title': 'An Englishman in New York', 'score': 4.203253746032715}
추가 정보
사용 가능한 Atlas Search 연산자에 대해 자세히 학습 MongoDB Atlas 문서에서 연산자 및 수집기 가이드 참조하세요.
Atlas Search 에 대한 자세한 내용과 더 많은 쿼리 예제를 보려면 Atlas Search 설명서를 참조하세요.
Atlas 에 저장된 데이터에 대해 벡터 검색을 수행하려면 Atlas Vector Search 사용해야 합니다. Atlas Vector Search 에 대해 자세히 학습 Atlas Vector Search 문서를 참조하세요.