참고
MongoDB는 향상된 전체 텍스트 검색 솔루션, MongoDB Search, 그리고 시맨틱 검색 솔루션, MongoDB Vector Search를 제공합니다. $text 연산자 대신 $search, $searchMeta 또는 $vectorSearch 단계를 사용하는 것이 좋습니다.
쿼리 프레임워크
텍스트 인덱스 가 $text 있는 컬렉션 에 연산자 사용할 수 있습니다.
$text 공백과 대부분의 구두점을 구분자로 사용하여 검색 문자열을 토큰화하고 검색 문자열에 있는 모든 토큰에 대해 논리적으로 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" } } )
집계 파이프라인
집계 파이프라인으로 $match 작업할 때는 $text 표현식 과 함께 를 사용합니다. 관련성 점수 순으로 결과를 정렬하려면 $meta 집계 연산자를 $sort 단계에서 사용합니다.
자세한 내용과 예시는 집계 파이프라인의 $text를 참조하세요.
MongoDB Search 는 컬렉션에서 전체 텍스트 검색 수행하기 위해 $search 집계 단계를 제공합니다.