텍스트 인덱스의 언어 는 텍스트 검색 쿼리를 실행 때 어간 단어를 구문 분석하고 중지 단어를 무시하는 데 사용되는 규칙을 결정합니다.
기본값 으로 텍스트 인덱스 에 기본값 언어 가 없는 경우 인덱스 는 language 문서 필드 를 사용하여 사용하는 언어 를 결정합니다. 결과적으로 language 필드 의 값은 문서 간에 변경될 수 있으므로 텍스트 인덱스는 단일 언어 제한되지 않습니다.
인덱스가 언어를 결정하는 데 사용하는 필드를 변경할 수 있습니다. 이는 필드 이름이 영어로 되어 있지 않고 문서에 language 필드가 없는 경우에 유용합니다.
language 이외의 필드 에 텍스트 인덱스 언어 를 지정하려면 인덱스 를 생성할 때 language_override 옵션을 포함합니다.
db.<collection>.createIndex( { <field> : "text" }, { language_override: "<field>" } )
텍스트 인덱스는 language_override 옵션에 지정된 필드를 사용하여 해당 문서에 사용할 언어를 결정합니다.
language_override 에 지정된 필드를 포함하지 않는 문서의 경우 인덱스는 영어를 언어로 사용합니다.
시작하기 전에
quotes 컬렉션을 생성합니다.
db.quotes.insertMany( [ { _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" } ] )
각 견적의 언어 는 idioma 필드 에 지정됩니다.
절차
quote 필드에 텍스트 인덱스를 만듭니다. 텍스트 인덱스가 언어에 대해 idioma 필드를 사용하도록 하려면 language_override 옵션을 지정합니다.
db.quotes.createIndex( { quote : "text" }, { language_override: "idioma" } )
결과
인덱스 는 quote 필드 에 대한 텍스트 검색 쿼리를 지원하며 idioma 필드 에 지정된 언어 를 기반으로 하는 언어 규칙을 사용합니다. 각 문서 는 idioma 필드 에 서로 다른 값을 지정하며, 이는 각 문서 가 서로 다른 언어 규칙으로 검색됨을 의미합니다.
다음 예시를 고려하십시오.
유효한 용어에 대한 Atlas Search
다음 쿼리는 audazes string 을 검색합니다.
db.quotes.find( { $text: { $search: "audazes" } } )
출력:
[ { _id: 1, idioma: 'portuguese', quote: 'A sorte protege os audazes' } ]
앞의 쿼리는 쿼리를 수행하기 위해 포르투갈어를 언어로 사용합니다.
Atlas Search for stop word
다음 쿼리는 hay string 을 검색합니다.
db.quotes.find( { $text: { $search: "hay" } } )
앞의 쿼리는 문서 _id: 2의 quote 필드에 hay string 이 나타나더라도 결과를 반환하지 않습니다.
문서 _id: 2 은(는) 언어 를 지정합니다. hay 는 스페인어에서 불용어로 간주되므로 텍스트 인덱스 에 포함되지 않습니다.
자세히 알아보기
텍스트 인덱스에 사용할 수 있는 언어를 확인하려면 자체 관리 배포서버의 텍스트 검색 언어를 참조하세요.
전체 텍스트 인덱스에 대한 기본값 언어 지정하는 방법을 학습하려면 자체 관리형 MongoDB에서 텍스트 인덱스에 대한 언어 지정을 참조하세요.
텍스트 인덱스 제한 사항을 확인하려면 자체 관리 배포서버에 대한 텍스트인덱스 제한 사항을 참조하세요.