자체 관리형 배포의 집계 파이프라인에서 $text
이 페이지의 내용
참고
이 페이지에서는 자체 관리(비Atlas) 배포를 위한 텍스트 쿼리 기능에 대해 설명합니다. MongoDB Atlas 에서 호스팅되는 데이터의 경우, MongoDB 는 향상된 전체 텍스트 쿼리 솔루션인Atlas Search 와 벡터 검색 솔루션인Atlas Vector Search 를 제공합니다.
집계 파이프라인에서 텍스트 검색은 $match
단계에서 $text
쿼리 연산자를 사용할 수 있습니다.
제한 사항
일반 $text
연산자 제한 사항은 연산자 제한을 참조하세요.
또한 집계 파이프라인의 텍스트 검색에는 다음과 같은 제한 사항이 있습니다:
텍스트 점수
$text
연산자는 각 결과 문서에 점수를 할당합니다. 점수는 주어진 쿼리에 대한 문서의 관련성을 나타냅니다. 점수는 프로젝션 표현식뿐만 아니라 $sort
파이프라인 사양의 일부가 될 수 있습니다. { $meta: "textScore" }
표현식은 $text
작업 처리에 대한 정보를 제공합니다. 프로젝션 또는 정렬을 위해 점수에 액세스하는 방법에 대한 자세한 내용은 $meta
를 참조하세요.
메타데이터는 $text
연산을 포함하는 $match
단계 이후에만 사용할 수 있습니다.
예시
다음 예에서는 subject
필드에 텍스트 인덱스가 있는 컬렉션 articles
을 가정합니다.
db.articles.createIndex( { subject: "text" } )
단어가 포함된 글의 총 조회수 계산하기
다음 집계는 $match
단계에서 cake
용어를 검색하고 $group
단계에서 일치하는 문서에 대한 총 views
를 계산합니다.
db.articles.aggregate( [ { $match: { $text: { $search: "cake" } } }, { $group: { _id: null, views: { $sum: "$views" } } } ] )
텍스트 검색 점수별로 정렬된 결과 반환
텍스트 검색 점수를 기준으로 정렬하려면 $sort
단계에 {$meta:
"textScore"}
표현식을 포함합니다. 다음 예시는 cake
또는 tea
이라는 용어를 일치시키고, textScore
를 내림차순으로 정렬하며, 결과 집합에서 title
필드만 반환합니다.
db.articles.aggregate( [ { $match: { $text: { $search: "cake tea" } } }, { $sort: { score: { $meta: "textScore" } } }, { $project: { title: 1, _id: 0 } } ] )
지정된 메타데이터에 따라 정렬 순서가 결정됩니다. 예를 들어 "textScore"
메타데이터는 내림차순으로 정렬됩니다. 메타데이터에 대한 자세한 내용과 메타데이터의 기본 정렬 순서를 재정의하는 예시는 $meta
를 참조하세요.
텍스트 점수 일치
"textScore"
메타데이터는 $text
연산을 포함하는 $match
단계 이후의 프로젝션, 정렬 및 조건에 사용할 수 있습니다.
다음 예시에서는 cake
또는 tea
용어와 일치하고 title
및 score
필드를 프로젝션한 다음 score
가 1.0
보다 큰 문서만 반환합니다.
db.articles.aggregate( [ { $match: { $text: { $search: "cake tea" } } }, { $project: { title: 1, _id: 0, score: { $meta: "textScore" } } }, { $match: { score: { $gt: 1.0 } } } ] )
텍스트 검색 언어 지정
다음 집계는 $match
단계에서 claro
용어가 아닌 saber
용어가 포함된 문서를 스페인어로 검색하고 $group
단계에서 일치하는 문서에 대한 총 views
를 계산합니다.
db.articles.aggregate( [ { $match: { $text: { $search: "saber -claro", $language: "es" } } }, { $group: { _id: null, views: { $sum: "$views" } } } ] )
$search
Atlas 검색의 스테이지
MongoDB Atlas에서 호스팅되는 데이터의 경우 Atlas Search는 컬렉션에서 전문 검색을 수행할 수 있는 $search 집계 단계를 제공합니다.