다음을 통해 공유


Microsoft Fabric의 Cosmos DB의 샘플 인덱싱 정책(미리 보기)

Cosmos DB의 인덱싱은 데이터가 어떻게 진화하든 빠르고 유연한 쿼리 성능을 제공하도록 설계되었습니다. 이러한 샘플 인덱싱 정책을 탐색하여 Cosmos DB에서 워크로드에 인덱싱을 조정하는 방법을 알아보세요. 각 샘플은 인덱싱되는 속성, 방법 및 이유를 제어하는 다른 방법을 보여 줍니다.

모든 속성 인덱싱(기본값)

이 정책은 기본 동작인 모든 항목의 모든 속성을 인덱싱합니다. 최대 쿼리 유연성을 제공합니다.

{
  "indexingMode": "consistent",
  "includedPaths": [ { "path": "/*" } ],
  "excludedPaths": []
}

인덱싱에서 속성 제외

이 정책은 특정 속성을 제외한 모든 속성을 인덱싱하여 해당 속성을 쿼리할 필요가 없는 경우 스토리지 및 쓰기 비용을 줄입니다.

{
  "indexingMode": "consistent",
  "includedPaths": [ { "path": "/*" } ],
  "excludedPaths": [ { "path": "/nonIndexedProperty/?" } ]
}

특정 속성만 인덱싱합니다.

이 정책은 지정한 속성의 인덱싱만 수행하므로 데이터의 하위 집합만 쿼리하는 경우 쓰기 성능을 향상시키고 스토리지를 줄일 수 있습니다.

{
  "indexingMode": "consistent",
  "includedPaths": [
    { "path": "/name/?" },
    { "path": "/address/city/?" }
  ],
  "excludedPaths": [ { "path": "/*" } ]
}

범위 및 공간 인덱스 사용

이 정책은 숫자의 범위 인덱스, 지리 공간 데이터의 공간 인덱스 등 다양한 속성에 서로 다른 인덱스 형식을 사용하는 방법을 보여 줍니다.

{
  "indexingMode": "consistent",
  "includedPaths": [
    {
      "path": "/___location/?",
      "indexes": [
        { "kind": "Spatial", "dataType": "Point" }
      ]
    },
    {
      "path": "/age/?",
      "indexes": [
        { "kind": "Range", "dataType": "Number", "precision": -1 }
      ]
    }
  ],
  "excludedPaths": [ { "path": "/*" } ]
}

복합 인덱스 사용

이 정책은 복합 인덱스를 추가하여 여러 속성을 함께 필터링하거나 정렬하는 쿼리를 최적화합니다.

{
  "indexingMode": "consistent",
  "includedPaths": [ { "path": "/*" } ],
  "excludedPaths": [],
  "compositeIndexes": [
    [
      { "path": "/category/?", "order": "ascending" },
      { "path": "/timestamp/?", "order": "descending" }
    ]
  ]
}

인덱싱 사용 안 함

이 정책은 데이터를 쿼리할 필요가 없는 쓰기 작업이 많은 워크로드에 유용한 컨테이너에 대한 인덱싱을 사용하지 않도록 설정합니다.

{
  "indexingMode": "none"
}

벡터 인덱싱 정책

이 정책을 사용하면 속성에 대한 /vector 벡터 인덱싱이 가능하므로 3차원 float32 벡터에서 코사인 거리를 사용하여 효율적인 유사성 검색을 수행할 수 있습니다.

{
  "vectorEmbeddings": [
    {
      "path": "/vector",
      "dataType": "float32",
      "distanceFunction": "cosine",
      "dimensions": 3
    },
  ]
}

전체 텍스트 인덱싱 정책

이 정책은 영어 분석을 사용하여 전체 텍스트 검색에 대한 속성을 구성 /text 하여 효율적인 텍스트 검색 쿼리를 허용합니다.

{
  "defaultLanguage": "en-US",
  "fullTextPaths": [
    {
      "path": "/text",
      "language": "en-US"
    }
  ]
}

제외된 시스템 속성을 사용하여 전체 텍스트 인덱싱

이 정책은 속성에 대한 /text 전체 텍스트 인덱싱을 가능하게 하며, 시스템 속성 _etag은 인덱싱에서 제외합니다.

{
  "indexingMode": "consistent",
  "automatic": true,
  "includedPaths": [
    {
      "path": "/*"
    }
  ],
  "excludedPaths": [
    {
      "path": "/\"_etag\"/?"
    },
  ],
  "fullTextIndexes": [
    {
      "path": "/text"
    }
  ]
}

여러 속성에 대한 전체 텍스트 인덱싱

이 정책은 /text1/text2 속성 모두에 대한 영어 언어 분석을 사용한 전체 텍스트 인덱싱을 활성화하여 여러 필드에서 효율적인 텍스트 검색 쿼리를 허용합니다.

{
  "defaultLanguage": "en-US",
  "fullTextPaths": [
    {
      "path": "/text1",
      "language": "en-US"
    },
    {
      "path": "/text2",
      "language": "en-US"
    }
  ]
}

이 정책은 전체 텍스트와 벡터 인덱싱을 결합하여 하이브리드 검색 기능을 사용하도록 설정하여 동일한 컨테이너 내에서 효율적인 텍스트 및 벡터 유사성 쿼리를 허용합니다.

{
  "indexingMode": "consistent",
  "automatic": true,
  "includedPaths": [
    {
      "path": "/*"
    }
  ],
  "excludedPaths": [
    {
      "path": "/\"_etag\"/?"
    },
    {
      "path": "/vector/*"
    }
  ],
  "fullTextIndexes": [
    {
      "path": "/text"
    }
  ],
  "vectorIndexes": [
    {
      "path": "/vector",
      "type": "DiskANN"
    }
  ]
}