Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

키워드 분석기

keyword 분석기는 문자열 또는 문자열 배열을 매개변수로 허용하고 이를 단일 용어(토큰)로 인덱스화합니다. 필드와 정확히 일치하는 항목만 반환됩니다. 모든 텍스트는 원래 대소문자를 그대로 유지합니다.

정확한 일치를 위해 keyword 분석기를 사용하는 대신 필드를 Atlas Search 토큰 유형으로 인덱싱하고 equals 연산자를 사용하여 필드를 검색할 수 있습니다.

Refine Your Index 작업을 수행하면 Atlas UI Visual Editor에서 keyword 분석기가 내장 정적 문자열에 대해 생성하는 토큰을 확인할 수 있습니다. Index Configurations 섹션에는 View text analysis of your selected index configuration을 확장할 때 keyword 분석기가 생성하는 인덱스 및 검색 토큰이 표시되므로 인덱스에 사용할 분석기를 쉽게 선택할 수 있습니다.

중요

Atlas Search는 분석기 토큰 크기가 32766바이트를 초과하는 문자열 필드를 인덱싱하지 않습니다. 키워드 분석기를 사용하는 경우 32766바이트를 초과하는 문자열 필드는 인덱싱되지 않습니다.

다음 예시 인덱스 정의는 keyword 분석기를 사용하여 sample_mflix.movies 컬렉션의 title 필드에 대한 인덱스를 지정합니다. 클러스터에 컬렉션을 로드한 경우, Atlas UI 비주얼 편집기 또는 JSON 편집기를 사용하여 예제 인덱스를 만들 수 있습니다. 원하는 구성 방법을 선택한 후 데이터베이스와 컬렉션을 선택하세요.

  1. 인덱스를 구성하려면 Refine Your Index을(를) 클릭합니다.

  2. Field Mappings 섹션에서 Add Field 을 클릭하여 Add Field Mapping창을 엽니다.

  3. Customized Configuration를 클릭합니다.

  4. Field Name 드롭다운 메뉴에서 title을(를) 선택합니다.

  5. Data Type 드롭다운을 클릭하고 아직 선택되지 않은 경우 String을(를) 선택합니다.

  6. String Properties을 확장하고 다음과 같이 변경합니다:

    인덱스 분석기
    드롭다운 메뉴에서 lucene.keyword 을(를) 선택합니다.
    검색 분석기
    드롭다운 메뉴에서 lucene.keyword 을(를) 선택합니다.
    인덱스 옵션
    기본값 offsets을(를) 사용합니다.
    Store
    기본값 true을(를) 사용합니다.
    위 내용 무시
    기본 설정을 유지합니다.
    규범
    기본값 include을(를) 사용합니다.
  7. Add를 클릭합니다.

  8. Save Changes를 클릭합니다.

  9. Create Search Index를 클릭합니다.

  1. 기본 인덱스 정의를 다음 인덱스 정의로 바꾸세요.

    {
    "mappings": {
    "fields": {
    "title": {
    "type": "string",
    "analyzer": "lucene.keyword"
    }
    }
    }
    }
  2. Next를 클릭합니다.

  3. Create Search Index를 클릭합니다.

다음 쿼리는 title 필드에서 Class Action 이라는 단어를 검색합니다.

db.movies.aggregate([
{
"$search": {
"text": {
"query": "Class Action",
"path": "title"
}
}
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[
{
title: 'Class Action'
}
]

lucene.keyword 분석기를 사용하여 필드에 있는 텍스트에 대해 생성한 단일 토큰 Class Action에 쿼리 용어 Class Action을 일치시켰기 때문에 Atlas Search가 문서를 반환했습니다. 그러나 Atlas Search는 다음 쿼리에 대해서는 아무 결과도 반환하지 않습니다.

db.cases.aggregate([
{
"$search": {
"text": {
"query": "action",
"path": "title"
}
}
}
])

컬렉션의 많은 문서에 action 문자열이 포함되어 있지만 keyword 분석기는 검색어가 필드의 전체 콘텐츠와 정확히 일치하는 문서만 일치시킵니다. 이전 쿼리의 경우 keyword 분석기는 결과를 반환하지 않습니다. 그러나 표준 분석기 또는 단순 분석기를 사용하여 필드를 인덱싱한 경우, Atlas Search는 다음과 유사한 토큰을 생성한 다음 쿼리 용어와 일치시키기 때문에 제목 필드 값이 Class Action인 문서를 포함하여 결과에 여러 문서를 반환합니다.

분석기
출력 토큰
경기 action
경기 Class Action
키워드 분석기 토큰
Class Action
X
표준 분석기 토큰
class, action
간단한 분석기 토큰
class, action

돌아가기

Whitespace