자체 관리형 배포에서 텍스트 인덱스의 기본 언어 지정하기
이 튜토리얼에서는 텍스트 인덱스와연결된 기본 언어를 지정하는 방법과 다양한 언어로 된 문서가 포함된 컬렉션에 대한 텍스트 인덱스를 만드는 방법을 설명합니다.
인덱스의 기본 언어 text
지정
인덱싱된 데이터와 연결된 기본값 언어 는 단어 어근을 구문 분석하는 규칙을 결정합니다(예: 형태소 분석) 및 중지 단어를 무시합니다. 인덱싱된 데이터의 기본값 언어 는 english
입니다.
다른 언어 를 지정하려면 text
인덱스 를 만들 때 default_language
옵션을 사용합니다. default_language
에 사용할 수 있는 언어에 대해서는 자체 관리 배포서버의 텍스트 검색 언어를 참조하세요.
다음 예에서는 quotes
컬렉션에 대해 content
필드에 text
인덱스를 생성하고 default_language
를 spanish
로 설정합니다.
db.quotes.createIndex( { content : "text" }, { default_language: "spanish" } )
여러 언어로 컬렉션에 대한 text
인덱스 만들기
문서 내 인덱스 언어 지정
컬렉션 에 다른 언어로 된 문서 또는 내장된 문서가 포함된 경우 문서 또는 내장된 문서에 language
이라는 필드 를 포함하고 해당 문서 또는 내장된 문서 된 문서의 언어 를 값으로 지정합니다.
MongoDB는 text
인덱스를 빌드할 때 해당 문서 또는 내장된 문서에 지정된 언어를 사용합니다.
문서 에 지정된 언어 가
text
인덱스 의 기본값 언어 를 재정의합니다.내장된 문서에 지정된 언어는 바깥쪽 문서에 지정된 언어 또는 인덱스의 기본 언어를 재정의합니다.
지원되는 언어 목록은 자체 관리 배포서버의 텍스트 검색 언어를 참조하세요.
예를 들어 quotes
컬렉션에는 필요에 따라 문서 및/또는 내장된 문서의 language
필드를 포함하는 다국어 문서가 포함되어 있습니다.
{ _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í." } }
기본 언어인 영어를 사용하여 quote
필드에 text
인덱스를 생성하는 경우.
db.quotes.createIndex( { original: "text", "translation.quote": "text" } )
그런 다음 language
필드 가 포함된 문서 및 내장된 문서의 경우 text
인덱스 는 해당 언어 를 사용하여 어간 및 기타 언어 특성을 구문 분석합니다.
language
필드 를 포함하지 않는 내장된 문서의 경우,
둘러싸는 문서 에
language
필드 가 포함되어 있으면 인덱스 는 내장된 문서 에 대해 문서 언어 를 사용합니다.그렇지 않으면 인덱스는 내장된 문서에 기본값 언어를 사용합니다.
language
필드 가 포함되지 않은 문서의 경우 인덱스 는 기본값 언어 인 영어를 사용합니다.
필드를 사용하여 문서 언어 지정하기
language
이외의 이름으로 필드 를 사용하려면 인덱스 를 생성할 때 language_override
옵션을 포함합니다.
예를 들어 필드 이름으로 language
대신 idioma
을(를) 사용하려면 다음 명령을 입력합니다.
db.quotes.createIndex( { quote : "text" }, { language_override: "idioma" } )
quotes
컬렉션 의 문서는 idioma
필드 를 사용하여 언어 를 지정할 수 있습니다.
{ _id: 1, idioma: "portuguese", quote: "A sorte protege os audazes" } { _id: 2, idioma: "spanish", quote: "Nada hay más surrealista que la realidad." } { _id: 3, idioma: "english", quote: "is this a dagger which I see before me" }