Docs Menu
Docs Home
/ /

MongoDB 검색 인덱스에서 동의어 매핑 정의

MongoDB Search 인덱스 정의의 synonyms 옵션은 컬렉션에서 동일하거나 거의 동일한 의미를 가진 단어를 인덱스하고 검색할 수 있는동의어 매핑 을 지정합니다. 동의어 매핑을 사용하여 MongoDB Search 인덱스 구성하려면 다음을 수행해야 합니다.

  1. 동의어 문서 컬렉션을 클러스터에 추가합니다. 다음 사항을 확인합니다.

    • 사용자의 컬렉션은 컬렉션을 참조할 인덱스와 동일한 데이터베이스에 있습니다.

    • 문서는 올바른 형식을 갖추고 있습니다.

  2. 인덱스 정의의 동의어 매핑에서 동의어 소스 컬렉션을 참조하십시오.

동의어 매핑은 인덱싱 중인 컬렉션 과 동일한 데이터베이스 에 있는 동의어 소스 컬렉션 의 동의어를 적용 쿼리를 지원 하도록 MongoDB Search 인덱스 구성합니다. 동의어는 텍스트 또는 연산자 사용하는 쿼리에서만 사용할 수 있습니다.

참고

무료(M0) 계층 클러스터 제한 사항

인덱스 정의는 하나의 동의어 매핑만 가질 수 있습니다.

이 페이지에서는 동의어 소스 컬렉션 의 형식과 MongoDB Search 인덱스 에서 동의어 소스 컬렉션 참조하는 동의어 매핑을 정의하는 방법을 설명합니다.

synonyms 인덱스 정의에는 다음과 같은 구문이 있습니다.

구문
1{
2 "synonyms": [
3 {
4 "name": "<synonym-mapping-name>",
5 "source": {
6 "collection": "<source-collection-name>"
7 },
8 "analyzer": "<synonym-mapping-analyzer>"
9 }
10 ]
11}

synonyms 는 인덱스 정의에서 다음 필드를 사용합니다.

필드
유형
설명
필요성

analyzer

문자열

이 동의어 매핑에 사용할 분석기의 이름입니다.

동의어 매핑을 사용하여 동일한 분석기로 분석된 필드만 쿼리할 수 있습니다.

중지 단어와 함께 동의어를 사용하려면 표준 분석기를 사용하여 필드를 인덱싱하거나 중지 단어 없이 동의어 항목을 추가해야 합니다.

다음을 제외한 모든 MongoDB Search 분석기 사용할 수 있습니다.

언어 분석기

  • lucene.kuromoji

  • lucene.cjk

사용자 지정 분석기 토크나이저 및 토큰 필터.

필수 사항

name

문자열

동의어 매핑의 이름입니다. 이름은 인덱스 정의에서 유일한 이름이어야 합니다. 값은 빈 문자열일 수 없습니다.

필수 사항

source

문서

동의어에 대한 소스 컬렉션 입니다. source 옵션은 collection 필드 사용합니다.

필수 사항

source.collection

문자열

MongoDB Search 인덱스 와 동일한 데이터베이스 에 있는 MongoDB 컬렉션 의 이름입니다. 이 컬렉션 의 문서는 동의어 소스 컬렉션 문서에 설명된 형식이어야 합니다.

필수 사항

동의어의 소스로 지정된 collection의 각 문서는 하나 이상의 단어가 해당 단어의 하나 이상의 동의어에 매핑되는 방식을 설명합니다.

참고

무료 계층 클러스터에서 동의어 컬렉션 10개,000 개 문서를 초과할 수 없습니다.

다음 필드를 사용하여 각 문서를 구성해야 합니다.

필드
유형
설명
필요성

input

문자열 배열

mappingType: explicit 매핑에 필요합니다.

explicit 매핑의 경우, synonyms 값은 각 input 토큰의 동의어입니다. 값은 비어 있거나 공백이 모두 있는 문자열일 수 없습니다. 여러 문서에서 동일한 input 값을 지정할 수 있습니다.

조건부

mappingType

문자열

매핑 유형입니다. 값은 다음 중 하나일 수 있습니다.

필수 사항

synonyms

문자열 배열

mappingTypeequivalent인 경우 서로 동의어 관계인 단어, 또는 mappingTypeexplicit인 경우 input 토큰의 동의어입니다. synonyms 에 값이 하나 이상 있어야 합니다.

중지 단어와 함께 동의어를 사용하려면 중지 단어 없이 동의어 엔트리를 추가하거나 표준 분석기를 사용하여 필드를 인덱싱해야 합니다.

mappingType의 예시는 소스 컬렉션 문서 예시를 참조하세요.

필수 사항

컬렉션 의 문서에는 다른 필드가 포함될 수 있습니다. 컬렉션 의 문서는 가산적이며 매핑은 중복 제거됩니다. MongoDB Search 동의어는 별도의 Atlas 컬렉션 으로 저장되며, 이는 Atlas 의 다른 컬렉션 과 동일한 저장 할당량에 포함됩니다. MongoDB Search는 대규모 동의어 소스 컬렉션의 동의어를 적용 위해 더 많은 컴퓨팅 리소스를 사용할 수 있습니다.

경고

동의어 소스 컬렉션 에 잘못된 동의어 문서를 포함하지 마세요. 인덱스가 유효하지 않은 문서가 있는 컬렉션을 참조하는 동의어 매핑을 사용하는 경우 MongoDB Search는 인덱스를 생성하지 않습니다. 동의어 소스 컬렉션 에 올바른 형식의 동의어 문서만 포함하세요.

MongoDB는 동의어 문서의 형식이 적절하며 테스트 환경에서 예상대로 작동하는지 먼저 확인하지 않고 프로덕션 환경의 동의어 소스 collection에 동의어 문서를 추가하는 것을 권장하지 않습니다.

동의어 소스 collection을 변경하는 경우 다음과 같습니다.

  • MongoDB Search는 변경 사항을 감시하고 내부 동의어 맵을 자동으로 업데이트하므로 다시 인덱싱할 필요가 없습니다.

  • 동의어 소스 컬렉션 크기에 따라 MongoDB Search에서 동의어 매핑을 업데이트 데 걸리는 시간이 증가합니다. 동의어 문서에 대한 변경 사항은 결국 MongoDB Search 쿼리 결과에 반영됩니다.

Atlas sample_synonyms라는 컬렉션 에서 다음과 같은 MongoDB Search 매핑 유형 예제에 대한 문서를 제공합니다. 컬렉션 과 동일한 데이터베이스 의 클러스터 에 이러한 문서를 로드할 수 있습니다. 컬렉션에 대한 인덱스를 생성할 때 클러스터에 이러한 문서를 로드하려면 다음을 수행합니다.

  1. Configuration Method를 선택한 경우, Visual Editor를 선택합니다.

  2. 인덱스에 Add synonym mapping을 추가한 경우, Synonym source collection 드롭다운에서 Load sample collection 을 선택합니다.

다음 예제 소스 컬렉션 문서에서 mappingTypeequivalent로 설정되어 토큰 car, vehicle, automobile이 서로의 동의어로 구성됩니다.

{
"mappingType": "equivalent",
"synonyms": ["car", "vehicle", "automobile"]
}

이러한 문서 포함하는 동의어 매핑을 car vehicle적용하는, 또는 에 대한 텍스트 쿼리 의 경우, MongoDB Search는,automobile car vehicle또는 라는 텀 포함된 문서를 automobile 반환합니다.

다음 예제 소스 컬렉션 문서에서 mappingTypeexplicit로 설정되어 토큰 beer, brew, pintinput 토큰 beer의 동의어로 구성됩니다.

{
"mappingType": "explicit",
"input": ["beer"],
"synonyms": ["beer", "brew", "pint"]
}

beer 이러한 문서 포함하는 동의어 매핑을 적용하는 에 대한 input 텍스트 쿼리 의 경우, 토큰 beer 이(가) 명시적으로 매핑되어 있기 때문에 MongoDB Search는 "beer", "brew" 또는 "pint" 라는 용어가 포함된 문서를 synonyms 반환합니다. 이 모든 토큰에 적용됩니다. 그러나 pint에 대한 쿼리 의 경우 pintbeer에 명시적으로 매핑되지 않았기 때문에 MongoDB Search는 beer 가 포함된 문서를 찾지 못합니다.

synonymous_terms라는 이름의 컬렉션은 sample_mflix 데이터베이스의 movies 컬렉션과 함께 사용할 수 있는 동의어 소스 컬렉션의 예입니다.

sample_mflix.synonymous_terms 컬렉션에는 다음 문서가 포함되어 있습니다.

{
"mappingType": "equivalent",
"synonyms": ["car", "vehicle", "automobile"]
}
{
"mappingType": "explicit",
"input": ["race"],
"synonyms": ["contest", "rally"]
}
{
"mappingType": "equivalent",
"synonyms": ["dress", "apparel", "attire"]
}
{
"mappingType": "explicit",
"input": ["boat"],
"synonyms": ["vessel", "sail"]
}

돌아가기

저장된 소스

이 페이지의 내용