참고
MongoDB 향상된 전체 텍스트 검색 솔루션인 MongoDB Search와 벡터 검색 솔루션인 MongoDB Vector Search를 제공합니다. 텍스트 인덱스 대신 MongoDB Search 인덱스 또는 MongoDB Vector Search 인덱스 를 사용하는 것이 좋습니다.
텍스트 인덱스는 $text 쿼리 가 string 콘텐츠가 포함된 필드에서 지원됩니다. 또한 집계 표현식 을 Queryable Encryption이 활성화된 컬렉션 의 암호화된 string 필드에 대해 지원합니다. 텍스트 인덱스는 string 콘텐츠 내에서 특정 단어나 string을 검색할 때 성능을 향상시킵니다.
컬렉션은 텍스트 인덱스 하나 만 있을 수 있지만 해당 인덱스 여러 필드가 포함될 수 있습니다.
텍스트 인덱스를 만들려면 다음 프로토타입을 사용합니다:
db.<collection>.createIndex( { <field1>: "text", <field2>: "text", ... } )
$text 연산자 지원
텍스트 인덱스는 온프레미스 배포서버에서 $text 쿼리 작업을 지원합니다. $text을(를) 사용하려면 텍스트 인덱스 를 만들어야 합니다.
$encStr 지원
텍스트 인덱스는 접두사, 접미사 또는 하위 문자열 쿼리가 활성화된 Queryable Encryption 컬렉션의 필드에 대한 집계 표현식 을 지원. $encStrNormalizedEq 표현식 사용하려면 텍스트 인덱스 필요합니다.
사용 사례
온라인 상점의 clothing 컬렉션 각 항목을 설명하는 string이 포함된 description 필드 있습니다. "silk"로 만든 옷을 찾으려면 description 에 텍스트 인덱스 생성하고 "silk"에 대한 $text 쿼리 실행 . 검색 description에서 "silk" 를 언급하는 모든 문서를 반환합니다.
시작하기
텍스트 인덱스를 만들고 사용하는 방법을 학습 다음을 참조하세요.
세부 정보
이 섹션에서는 텍스트 인덱스 세부 정보에 대해 설명합니다.
복합 텍스트 인덱스
텍스트 인덱스 키 및 기타 키 유형이 있는 복합 인덱스 에서는 텍스트 인덱스 필드 만이 인덱스 문서 참조하는지 여부를 결정합니다. 다른 키는 문서 참조에 영향을 주지 않습니다.
지원되는 쿼리
텍스트 인덱스는 쿼리 포함할 수 없습니다.
sparse 속성
텍스트 인덱스는 항상 희박합니다. MongoDB 텍스트 인덱스를 생성할 때 sparse 옵션을 무시합니다.
MongoDB 텍스트 인덱스 필드 없거나, null 값이 있거나, 배열이 빈 문서에 대해서는 텍스트 인덱스 항목 추가하지 않습니다.
스토리지 요구 사항 및 성능 비용
텍스트 인덱스의 저장 및 성능 특성은 다음과 같습니다.
텍스트 인덱스는 상당한 RAM 소모할 수 있습니다. 여기에는 각 문서 의 각 인덱스 필드 에 있는 고유한 어간 단어 각각에 대한 인덱스 항목 하나씩 포함되어 있습니다.
텍스트 인덱스 작성하는 것은 대규모 멀티키 인덱스 작성하는 것과 유사하지만 동일한 데이터에 대해 정렬된(스칼라) 인덱스 작성하는 것보다 시간이 오래 걸립니다.
큰 텍스트 인덱스를 구축할 때는 파일 설명자 제한을 충분히 확보하세요. 권장 설정을 참조하세요.
MongoDB 새 문서의 각 인덱스 필드 에 각 고유 어간 단어에 대한 인덱스 항목 추가해야 하기 때문에 텍스트 인덱스는 쓰기 (write) 성능에 영향 .
텍스트 인덱스는 여러 단어로 구성된 문자열이나 단어 근접성 정보가 아닌 개별 단어를 저장 . 전체 컬렉션 RAM 에 맞을 때 여러 단어가 포함된 쿼리가 더 빠르게 실행 .
자세히 알아보기
텍스트 인덱스에 학습 보려면 다음을 참조하세요.
$text쿼리 예시는$text reference page를 참조하세요.집계 파이프라인의
$text작업 예제는 집계 파이프라인의 $text를 참조하세요.