Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Indexering i Cosmos DB är utformat för att leverera snabba och flexibla frågeprestanda, oavsett hur dina data utvecklas. I den här guiden ändrar du indexeringsprincipen för en container med hjälp av Fabric-portalen eller ett Azure SDK.
Förutsättningar
En befintlig Fabric-kapacitet
- Om du inte har Fabric-kapacitet, starta en utvärderingsversion av Fabric.
En befintlig Cosmos DB-databas i Fabric
- Om du inte redan har en skapar du en ny Cosmos DB-databas i Fabric.
En befintlig container med data
- Om du inte redan har en föreslår vi att du läser in exempeldatacontainern.
- Python 3.12 eller senare
- Node.js 22 eller senare
- .NET SDK 9.0 eller senare
Ange med hjälp av Fabric-portalen
Använd först Infrastrukturportalen för att ange indexeringsprincipen för en container
Öppna Fabric-portalen (https://app.fabric.microsoft.com).
Gå till din befintliga Cosmos DB-databas.
Välj och expandera din befintliga container. Välj sedan Inställningar.
I avsnittet Inställningar väljer du fliken Indexeringsprincip .
Uppdatera inställningen till ett nytt värde i redigeraren. Tänk dig till exempel den här exempeldokumentstrukturen som innehåller både affärsdata och systemmetadata:
{ "id": "product-123", "_etag": "abc123def456", "name": "Wireless Headphones", "category": "Electronics", "price": 99.99, "metadata": { "createdBy": "system", "lastModified": "2025-10-30T10:30:00Z", "version": 1.2, "tags": ["internal", "generated"], "audit": { "importSource": "legacy-system", "reviewStatus": "pending" } } }Du kan skapa en indexeringsprincip som indexerar alla egenskaper förutom metadatafält som vanligtvis inte används i frågor:
{ "indexingMode": "consistent", "automatic": true, "includedPaths": [ { "path": "/*" } ], "excludedPaths": [ { "path": "/_etag/?" }, { "path": "/metadata/*" } ] }Anmärkning
Sökvägen
/_etag/?använder?för att exkludera endast_etagegenskapen själv, medan/metadata/*använder*för att exkludera helametadataobjektet och alla dess underliggande egenskaper.Med den här indexeringsprincipen tillämpad på exempeldokumentet:
-
Indexerade egenskaper:
id,name,category,price(och alla andra egenskaper förutom de som undantas) -
Exkluderas från indexering:
-
_etagegenskap (enskilt värde) - Hela
metadataobjektet inklusivecreatedBy,lastModified,version,tagsoch det kapsladeauditobjektet med dess egenskaper
-
Den här metoden optimerar lagring och prestanda genom att exkludera systemmetadata som vanligtvis inte används i användarfrågor samtidigt som alla affärsdata kan sökas.
-
Indexerade egenskaper:
Ange med Azure SDK
Slutligen använder du Azure SDK för att ange indexeringsprincipen för en container.
database = client.get_database_client("<database-name>")
container = database.get_container_client("<container-name>")
# Create policy that indexes all paths except metadata fields
indexing_policy = {
"indexingMode": "consistent",
"automatic": True,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/_etag/?"
},
{
"path": "/metadata/*"
}
]
}
# Apply the indexing policy to the container
await database.replace_container(container, partition_key=PartitionKey(path='/<partition-key-path>'), indexing_policy=indexing_policy)
const container: Container = client.database('<database-name>').container('<container-name>');
const { resource: containerProperties } = await container.read();
// Create policy that indexes all paths except metadata fields
containerProperties['indexingPolicy'] = {
indexingMode: 'consistent',
automatic: true,
includedPaths: [
{
path: '/*'
}
],
excludedPaths: [
{
path: '/_etag/?'
},
{
path: '/metadata/*'
}
]
}
await container.replace(containerProperties);
Container container = client
.GetDatabase("<database-name>")
.GetContainer("<container-name>");
ContainerProperties properties = await container.ReadContainerAsync();
// Create policy that indexes all paths except metadata fields
IndexingPolicy indexingPolicy = new()
{
IndexingMode = IndexingMode.Consistent,
Automatic = true
};
indexingPolicy.IncludedPaths.Add(
new IncludedPath { Path = "/*" }
);
indexingPolicy.ExcludedPaths.Add(
new ExcludedPath{ Path = "/_etag/?" }
);
indexingPolicy.ExcludedPaths.Add(
new ExcludedPath{ Path = "/metadata/*" }
);
properties.IndexingPolicy = indexingPolicy;
await container.ReplaceContainerAsync(properties);