모든 필드를 사용하여 자체 관리 배포서버에서 텍스트 인덱스 언어 지정
텍스트 인덱스의 언어 는 텍스트 검색 쿼리를 실행 때 어간 단어를 구문 분석하고 중지 단어를 무시하는 데 사용되는 규칙을 결정합니다.
기본값 으로 텍스트 인덱스 에 기본값 언어 가 없는 경우 인덱스 는 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
는 스페인어에서 불용어로 간주되므로 텍스트 인덱스 에 포함되지 않습니다.
자세히 알아보기
텍스트 인덱스에 사용할 수 있는 언어를 확인하려면 자체 관리 배포서버의 텍스트 검색 언어를 참조하세요.
전체 텍스트 인덱스 에 대한 기본값 언어 를 지정하는 방법을 학습 보려면 자체 관리 배포서버에서 텍스트 인덱스에 대한 기본 언어 지정을 참조하세요.
텍스트 인덱스 제한 사항을 확인하려면 자체 관리 배포서버에 대한 텍스트인덱스 제한 사항을 참조하세요.