Criteri di indicizzazione di esempio in Cosmos DB in Microsoft Fabric

L'indicizzazione in Cosmos DB è progettata per offrire prestazioni di query veloci e flessibili, indipendentemente dal modo in cui i dati si evolvono. Esplorare questi criteri di indicizzazione di esempio per scoprire come personalizzare l'indicizzazione per il carico di lavoro in Cosmos DB. Ogni esempio illustra un modo diverso per controllare quali proprietà vengono indicizzate, come e perché.

Indicizzare tutte le proprietà (impostazione predefinita)

Questo criterio indicizza ogni proprietà in ogni elemento, ovvero il comportamento predefinito. Offre la massima flessibilità delle query.

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

Escludere una proprietà dall'indicizzazione

Questo criterio indicizza tutte le proprietà ad eccezione di una proprietà specifica, riducendo i costi di archiviazione e scrittura se non è necessario eseguire query su tale proprietà.

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

Solo proprietà specifiche dell'indice

Questo criterio esegue solo l'indicizzazione delle proprietà specificate, che può migliorare le prestazioni di scrittura e ridurre l'archiviazione se si esegue solo una query su un subset dei dati.

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

Usare indici spaziali

Questo criterio illustra come usare indici spaziali per i dati geospaziali.

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

Usare indici compositi

Questo criterio aggiunge un indice composito per ottimizzare le query che filtrano o ordinano in base a più proprietà.

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

Disabilitare l'indicizzazione

Questo criterio disabilita l'indicizzazione per il contenitore, utile per i carichi di lavoro con intensa attività di scrittura in cui non è necessario eseguire query sui dati e usare solo operazioni di lettura punto per recuperare i dati.

{
  "indexingMode": "none"
}

Criteri di indicizzazione vettoriale

Questo criterio abilita l'indicizzazione vettoriale su una proprietà denominata, /vectors che viene usata per archiviare gli incorporamenti per tale elemento, /vectors. Ciò consente ricerche di somiglianza efficienti usando la distanza coseno a 512 dimensioni con vettori float32.

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

Linee guida per l'indicizzazione del testo completo

Questo criterio configura una proprietà denominata /text per la ricerca full-text mediante l'analisi della lingua inglese, consentendo query di ricerca di testo efficienti.

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

Indicizzazione testuale completa con esclusione delle proprietà di sistema

Questo criterio abilita l'indicizzazione full-text nella /text proprietà, escludendo la proprietà _etag di sistema dall'indicizzazione.

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

Indicizzazione del testo completo su più proprietà

Questo criterio consente l'indicizzazione full-text sia sulla proprietà /text1 che sulla proprietà /text2 usando l'analisi della lingua inglese, permettendo di eseguire query di ricerca testuale efficienti su più campi.

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

Questa politica combina l'indicizzazione del testo completo e dei vettori per abilitare le capacità di ricerca ibrida, consentendo query di somiglianza di testi e vettori efficienti all'interno dello stesso contenitore.

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