Поделиться через


Примеры политик индексирования в Cosmos DB в Microsoft Fabric (предварительная версия)

Индексирование в 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 на свойстве, что позволяет эффективно выполнять поиск сходства с использованием косинусного расстояния на трехмерных 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"
    }
  ]
}