색인 정의를 위한 스키마

여기에서는 컬렉션에서 사용할 색인의 스키마 정의에 대해서 다룹니다.

스키마 정의를 위한 항목

색인을 위한 스키마의 일반적인 형식은 다음과 같습니다.

{
    "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에 입력 가능한 값은 다음과 같습니다.

기본키(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) 색인

전문 검색을 위한 스키마 정의 방법은 전문 검색 스키마를 참고하세요.