Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs Menu
Docs Home
/ /

자체 관리형 배포의 텍스트 인덱스

참고

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을(를) 사용하려면 텍스트 인덱스 를 만들어야 합니다.

텍스트 인덱스는 접두사, 접미사 또는 하위 문자열 쿼리가 활성화된 Queryable Encryption 컬렉션의 필드에 대한 집계 표현식 을 지원. $encStrNormalizedEq 표현식 사용하려면 텍스트 인덱스 필요합니다.

온라인 상점의 clothing 컬렉션 각 항목을 설명하는 string이 포함된 description 필드 있습니다. "silk"로 만든 옷을 찾으려면 description 에 텍스트 인덱스 생성하고 "silk"에 대한 $text 쿼리 실행 . 검색 description에서 "silk" 를 언급하는 모든 문서를 반환합니다.

텍스트 인덱스를 만들고 사용하는 방법을 학습 다음을 참조하세요.

이 섹션에서는 텍스트 인덱스 세부 정보에 대해 설명합니다.

텍스트 인덱스 키 및 기타 키 유형이 있는 복합 인덱스 에서는 텍스트 인덱스 필드 만이 인덱스 문서 참조하는지 여부를 결정합니다. 다른 키는 문서 참조에 영향을 주지 않습니다.

텍스트 인덱스는 쿼리 포함할 수 없습니다.

텍스트 인덱스는 항상 희박합니다. MongoDB 텍스트 인덱스를 생성할 때 sparse 옵션을 무시합니다.

MongoDB 텍스트 인덱스 필드 없거나, null 값이 있거나, 배열이 빈 문서에 대해서는 텍스트 인덱스 항목 추가하지 않습니다.

텍스트 인덱스의 저장 및 성능 특성은 다음과 같습니다.

  • 텍스트 인덱스는 상당한 RAM 소모할 수 있습니다. 여기에는 각 문서 의 각 인덱스 필드 에 있는 고유한 어간 단어 각각에 대한 인덱스 항목 하나씩 포함되어 있습니다.

  • 텍스트 인덱스 작성하는 것은 대규모 멀티키 인덱스 작성하는 것과 유사하지만 동일한 데이터에 대해 정렬된(스칼라) 인덱스 작성하는 것보다 시간이 오래 걸립니다.

  • 큰 텍스트 인덱스를 구축할 때는 파일 설명자 제한을 충분히 확보하세요. 권장 설정을 참조하세요.

  • MongoDB 새 문서의 각 인덱스 필드 에 각 고유 어간 단어에 대한 인덱스 항목 추가해야 하기 때문에 텍스트 인덱스는 쓰기 (write) 성능에 영향 .

  • 텍스트 인덱스는 여러 단어로 구성된 문자열이나 단어 근접성 정보가 아닌 개별 단어를 저장 . 전체 컬렉션 RAM 에 맞을 때 여러 단어가 포함된 쿼리가 더 빠르게 실행 .

돌아가기

$text 쿼리 언어

이 페이지의 내용