자체 관리 배포서버에서 여러 언어를 포함하는 컬렉션에 대한 텍스트 인덱스 만들기
텍스트 인덱스 를 생성하여 여러 언어로 된 텍스트가 포함된 문서 또는 내장된 문서가 포함된 컬렉션 에서 실행 되는 텍스트 검색 쿼리의 성능을 개선할 수 있습니다.
컬렉션 에 여러 언어로 된 문서 또는 내장된 문서가 포함된 경우 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 를 지정하지 않으면 쿼리 에서 $ 언어 매개변수를 사용하여 언어 를 지정해야 합니다. 자세한 내용 은 자체 관리형 배포서버에서 텍스트 인덱스의 기본 언어 지정을 참조하세요.
결과
결과 인덱스 는 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
이외의 필드 에 텍스트 인덱스 언어 를 지정하려면 모든 필드를 사용하여 자체 관리 배포서버에서 텍스트 인덱스 언어 지정을 참조하세요.텍스트 인덱스 의 기본값 언어 를 지정하는 방법을 학습 보려면 자체 관리 배포서버에서 텍스트 인덱스의 기본 언어 지정을 참조하세요.
다른 텍스트 인덱스 속성에 학습 보려면 자체 관리형 배포서버의 텍스트 인덱스 속성을 참조하세요.