색인 정의를 위한 스키마
여기에서는 컬렉션에서 사용할 색인의 스키마 정의에 대해서 다룹니다.
스키마 정의를 위한 항목
색인을 위한 스키마의 일반적인 형식은 다음과 같습니다.
{
"name": "sk_key",
"index_type": "kSecondaryKey",
"fields": ["field_name"],
"unique": False,
"options": {}
}
다음은 색인 정의를 위해 입력 가능한 인자에 대한 표입니다.
항목 | 설명 | 타입 | 비고 |
---|---|---|---|
name | 색인의 이름 | str | |
index_type | 색인의 종류 | str | |
fields | 색인에 사용할 필드명 | list[str] | |
unique | 유일성 제약 | bool | |
options | 옵션 상세 옵션 | dict | 현재 전문 검색 색인에서만 사용 |
index_type
index_type
에 입력 가능한 값은 다음과 같습니다.
kPrimaryKey
: 기본키kSecondaryKey
: 보조키kClusteredSecondaryKey
: 크러스터형 보조키kFullTextSearchIndex
: 전문 검색용 색인
기본키(Primary Key)
다음은 기본키 정의를 위한 최소한의 명세를 포함하는 예시입니다.
{
"index_type": "kPrimaryKey",
"fields": [
"doc_id"
]
}
기본키 속성에 따라 인자는 다음과 같이 제한됩니다. 이 항목은 생략할 수 있습니다.
name
: 예약어인__primary_key__
로 고정됨unique
: 중복 허용되지 않음. True로 고정됨
기본키는 컬렉션 생성에 필수 항목이며 하나 이상 생성할 수 없습니다. fields 조합으로 고유값을 가져야 하며 중복된 키의 데이터 삽입은 갱신(upsert)으로 동작합니다.
보조키(Secondary Key)
기본키와 별도로 필요에 따라 보조키를 생성할 수 있습니다. 보조키는 하나 이상 생성할 수 있습니다. 보조키는 클러스터형 인텍스(kClusteredSecondaryKey
)를 선택할 수 있고 이 색인의 특성은 일반적인 데이터베이스와 같이 삽입, 수정, 삭제는 빈번하지 않고 읽기가 많은 경우에 적합합니다.
아래는 보조키 생성을 위한 스키마 정의 예시입니다.
{
"name": "sk_author",
"index_type": "kSecondaryKey",
"fields": ["author"],
"unique": False
},
{
"name": "sk_category",
"index_type": "kClusteredSecondaryKey",
"fields": ["category", "section"],
"unique": False
}
전문 검색(Full-Text Search) 색인
전문 검색을 위한 스키마 정의 방법은 전문 검색 스키마를 참고하세요.