텍스트 인덱스 를 생성하여 여러 언어로 된 텍스트가 포함된 문서 또는 내장된 문서가 포함된 컬렉션 에서 실행 되는 텍스트 검색 쿼리의 성능을 개선할 수 있습니다.
컬렉션 에 여러 언어로 된 문서 또는 내장된 문서가 포함된 경우 language 이라는 필드 를 포함하고 해당 문서의 언어 를 필드 값으로 지정합니다. 텍스트 인덱싱 에 사용할 수 있는 언어를 확인하려면 자체 관리 배포서버의 텍스트 검색 언어를 참조하세요.
여러 언어에 대한 텍스트 인덱싱을 지원하려면 삽입 작업이 이 예시와 유사해야 합니다.
db.<collection>.insertOne( { <field>: <value>, language: <language> } )
시작하기 전에
language 필드 가 포함된 다국어 문서가 포함된 quotes 컬렉션 을 만듭니다.
db.quotes.insertMany( [ { _id: 1, language: "portuguese", original: "A sorte protege os audazes.", translation: [ { language: "english", quote: "Fortune favors the bold." }, { language: "spanish", quote: "La suerte protege a los audaces." } ] }, { _id: 2, language: "spanish", original: "Nada hay más surrealista que la realidad.", translation: [ { language: "english", quote: "There is nothing more surreal than reality." }, { language: "french", quote: "Il n'y a rien de plus surréaliste que la réalité." } ] }, { _id: 3, original: "Is this a dagger which I see before me?", translation: { language: "spanish", quote: "Es este un puñal que veo delante de mí." } } ] )
절차
다음 작업은 original 및 translation.quote 필드에 텍스트 인덱스 를 생성합니다.
db.quotes.createIndex({ original: "text", "translation.quote": "text", "default_language" : "fr" })
참고
영어는 인덱스의 기본값 언어 입니다. default_language를 지정하지 않으면 쿼리 에서 $ 언어 매개변수를 사용하여 언어 지정해야 합니다. 자세한 내용은 자체 관리형 MongoDB 의 텍스트 인덱스에 대한 언어 지정을 참조하세요.
결과
결과 인덱스 는 original 및 translation.quote 필드를 포함하는 문서 및 내장된 문서에 대한 텍스트 검색 쿼리를 지원합니다. 텍스트 인덱스 는 다양한 접미사 어간 처리 규칙을 따르며 language 필드 의 값에 따라 각 언어 와 관련된 중지 단어를 무시합니다.
예를 예시, 다음 쿼리 는 french 단어 réalité 을 검색합니다.
db.quotes.find( { $text: { $search: "réalité" } } )
출력:
[ { _id: 2, language: 'spanish', original: 'Nada hay más surrealista que la realidad.', translation: [ { language: 'english', quote: 'There is nothing more surreal than reality.' }, { language: 'french', quote: "Il n'y a rien de plus surréaliste que la réalité." } ] } ]
language 필드 를 포함하지 않는 내장된 문서의 경우,
바깥쪽 문서 에
language필드 가 포함되어 있으면 인덱스 는 내장된 문서에 문서 언어 를 사용합니다.그렇지 않으면 인덱스는 내장된 문서에 기본값 언어를 사용합니다.
language 필드 가 포함되지 않은 문서의 경우 인덱스 는 기본값 언어 인 영어를 사용합니다.
자세히 알아보기
language이외의 필드에 텍스트 인덱스 언어 지정하려면 자체 관리 배포서버에서 텍스트 인덱스 언어 지정을 참조하세요.텍스트 인덱스의 기본값 언어를 지정하는 방법을 학습하려면 자체 관리형 MongoDB의 텍스트 인덱스 언어 지정을 참조하세요.
다른 텍스트 인덱스 속성에 학습 보려면 자체 관리형 배포서버의 텍스트 인덱스 속성을 참조하세요.