텍스트 검색 연산자(자체 관리 배포서버)
참고
이 페이지에서는 자체 관리(비Atlas) 배포를 위한 텍스트 쿼리 기능에 대해 설명합니다. MongoDB Atlas 에서 호스팅되는 데이터의 경우, MongoDB 는 향상된 전체 텍스트 쿼리 솔루션인Atlas Search 와 벡터 검색 솔루션인Atlas Vector Search 를 제공합니다.
쿼리 프레임워크
텍스트 인덱스 가 있는 컬렉션 에서 텍스트 $text
검색을 수행하려면 쿼리 연산자 를 사용합니다.
$text
공백과 대부분의 구두점을 구분자로 사용하여 검색 string 을 토큰화하고 검색 string 에 있는 모든 토큰에 대해 논리적 OR
를 수행합니다.
예를 들어 다음 쿼리를 사용하여 stores
컬렉션에서 'coffee', 'shop', 'java' 목록의 용어가 포함된 모든 스토어를 찾을 수 있습니다.
db.stores.find( { $text: { $search: "java coffee shop" } } )
$meta
쿼리 연산자를 사용하여 일치하는 각 문서의 관련성 점수를 구하고 이를 기준으로 정렬합니다. 예를 들어 커피숍 목록을 관련성 순으로 정렬하려면 다음을 실행하세요.
db.stores.find( { $text: { $search: "coffee shop cake" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } )
$text
및 $meta
연산자에 관하여 제한 사항 및 동작을 포함한 자세한 내용은 다음에서 확인하세요.
$meta
프로젝션 연산자
집계 파이프라인
집계 파이프라인으로 작업할 때는 $text
표현식 과 함께 $match
를 사용하여 텍스트 검색 쿼리 를 실행합니다. 관련성 점수 순으로 결과를 정렬하려면 단계[1 $meta
]$sort
에서 집계 연산자 를 사용합니다.
집계 작업 파이프라인의 $text
에 대한 자세한 내용과 예시는 자체 관리 배포서버의 집계 파이프라인에서 $text를 참조하세요.
MongoDB Atlas에서 호스팅되는 데이터의 경우 Atlas Search는 컬렉션에서 전문 검색을 수행할 수 있는 $search 집계 단계를 제공합니다.
[1] | $meta 프로젝션 연산자의 동작 및 요구 사항은 $meta 집계 연산자의 동작 및 요구 사항과 다릅니다. $meta 집계 연산자에 관한 자세한 내용은 $meta 집계 연산자 참조 페이지에서 확인하세요. |