자체 관리형 배포의 집계 파이프라인에서 $text
이 페이지의 내용
참고
이 페이지에서는 자체 관리형(Atlas 관리가 아닌) 배포서버를 위한 일반 텍스트 쿼리 기능에 대해 설명합니다. MongoDB Atlas에서 호스팅되는 데이터의 경우, MongoDB는 향상된 전체 텍스트 쿼리 솔루션인 Atlas 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 집계 단계를 제공합니다.