문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / / /

모든 필드를 사용하여 자체 관리 배포서버에서 텍스트 인덱스 언어 지정

이 페이지의 내용

  • 시작하기 전에
  • 절차
  • 결과
  • 유효한 용어에 대한 Atlas Search
  • Atlas Search for stop word
  • 자세히 알아보기

텍스트 인덱스의 언어는 텍스트 검색 쿼리를 실행할 때 어간 단어를 구문 분석하고 중지 단어를 무시하는 데 사용되는 규칙을 결정합니다.

기본적으로 텍스트 인덱스에 기본 언어 가 없는 경우 인덱스는 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 필드에 서로 다른 값을 지정하며, 이는 각 문서가 서로 다른 언어 규칙으로 검색됨을 의미합니다.

다음 예시를 고려하십시오.

다음 쿼리는 audazes string 을 검색합니다.

db.quotes.find(
{
$text: { $search: "audazes" }
}
)

출력:

[
{ _id: 1, idioma: 'portuguese', quote: 'A sorte protege os audazes' }
]

앞의 쿼리는 쿼리를 수행하기 위해 포르투갈어를 언어로 사용합니다.

다음 쿼리는 hay string 을 검색합니다.

db.quotes.find(
{
$text: { $search: "hay" }
}
)

앞의 쿼리는 문서 _id: 2quote 필드에 hay string 이 나타나더라도 결과를 반환하지 않습니다.

문서 _id: 2 은(는) 스페인어를 지정합니다. hay 는 스페인어에서 중지 단어로 간주되므로 텍스트 인덱스에 포함되지 않습니다.

돌아가기

여러 언어

다음

가중치 할당