Sdílet prostřednictvím


Ukázkové zásady indexování ve službě Cosmos DB (v Azure a Fabric)

Cosmos DB (v Azure a Fabric) je databáze nezávislá na schématu, která umožňuje iterovat ve své aplikaci bez nutnosti zabývat se správou schématu nebo indexu. Zásady indexování ve službě Cosmos DB pomáhají optimalizovat výkon dotazů a snižovat náklady tím, že řídí, které vlastnosti se indexují. Indexování ve službě Cosmos DB je navržené tak, aby poskytovalo rychlý a flexibilní výkon dotazů bez ohledu na to, jak se vaše data vyvíjejí. Každá ukázka ukazuje jiný způsob, jak řídit, které vlastnosti se indexují, jak a proč, abyste mohli indexování přizpůsobit konkrétnímu zatížení.

Indexování všech vlastností (výchozí)

Tato zásada indexuje každou vlastnost v každé položce, což je výchozí chování. Poskytuje maximální flexibilitu dotazů.

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

Vyloučení vlastnosti z indexování

Tato zásada indexuje všechny vlastnosti s výjimkou konkrétní vlastnosti, což snižuje náklady na úložiště a zápis, pokud tuto vlastnost nepotřebujete dotazovat.

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

Pouze vlastnosti specifické pro index

Tato zásada provádí indexování zadaných vlastností, což může zlepšit výkon při zápisu a snížit úložiště pouze v případě, že se dotazujete pouze na podmnožinu dat.

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

Použití prostorových indexů

Tato zásada ukazuje, jak použít prostorový index pro geoprostorová data.

{
  "indexingMode": "consistent",
  "includedPaths": [
    { 
      "path": "/*" 
    },
    {
      "path": "/location/?",
      "indexes": [
        { 
          "kind": "Spatial", 
          "dataType": "Point" 
        }
      ]
    }
  ],
  "excludedPaths": [ 
    {
      path: '/_etag/?'
    }
  ]
}

Použití složených indexů

Tato zásada přidá složený index pro optimalizaci dotazů, které filtrují nebo seřadí podle více vlastností.

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

Zakázání indexování

Tato zásada zakáže indexování kontejneru, což je užitečné pro úlohy náročné na zápis, kde nepotřebujete dotazovat data a k načtení dat používejte pouze operace čtení typu point-read.

{
  "indexingMode": "none"
}

Zásady indexování vektorů

Tato zásada umožňuje indexování vektorů u pojmenované vlastnosti, /vectors kterou používáte k ukládání vložených položek. /vectors Toto indexování umožňuje efektivní vyhledávání podobnosti pomocí kosinusové vzdálenosti na 512rozměrném prostoru s float32 vektory.

{
  "vectorEmbeddings": [
    {
      "path": "/vectors",
      "dataType": "float32",
      "distanceFunction": "cosine",
      "dimensions": 512
    },
  ]
}

Zásady fulltextového indexování

Tato zásada konfiguruje vámi pojmenovanou vlastnost /text pro fulltextové vyhledávání s analýzou anglického jazyka, což umožňuje efektivní dotazy pro vyhledávání textu.

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

Fulltextové indexování s vyloučenou systémovou vlastností

Tato zásada umožňuje fulltextové indexování vlastnosti /text při vyloučení systémové vlastnosti _etag z indexování.

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

Fulltextové indexování u více vlastností

Tato zásada umožňuje indexování fulltextu na vlastnostech /text1 i /text2 pomocí analýzy anglického jazyka, což umožňuje efektivní textové dotazy napříč více polí.

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

Tato zásada kombinuje fulltextové indexování a indexování vektorů a umožňuje tak možnosti hybridního vyhledávání, což umožňuje efektivní dotazy na podobnost textu a vektorů v rámci stejného kontejneru.

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