Skip to content

VectorIndexDefinition: Adds Support for Partitioned DiskANN#4792

Merged
kirankumarkolli merged 14 commits into
masterfrom
users/kundadebdatta/4628_add_partitioned_diskann_changes
Oct 18, 2024
Merged

VectorIndexDefinition: Adds Support for Partitioned DiskANN#4792
kirankumarkolli merged 14 commits into
masterfrom
users/kundadebdatta/4628_add_partitioned_diskann_changes

Conversation

@kundadebdatta

@kundadebdatta kundadebdatta commented Oct 10, 2024

Copy link
Copy Markdown
Member

Pull Request Template

Description

This PR adds optional attributes in the VectorIndexDefinition class to support partitioned DiskANN. A typical index definition would be something like the below:

{
    "indexingPolicy": {
        "automatic": true,
        "indexingMode": "Consistent",
        "includedPaths": [
            {
                "path": "/*",
                "indexes": []
            }
        ],
        "excludedPaths": [],
        "compositeIndexes": [],
        "spatialIndexes": [],
        "vectorIndexes": [
            {
                "path": "/vector1",
                "type": "flat"
            },
            {
                "path": "/vector2",
                "type": "quantizedFlat",
                "quantizationByteSize": 3,
                "vectorIndexShardKey": [
                    "/Country"
                ]
            },
            {
                "path": "/vector3",
                "type": "diskANN",
                "quantizationByteSize": 2,
                "indexingSearchListSize": 100,
                "vectorIndexShardKey": [
                    "/ZipCode"
                ]
            }
        ]
    },
    "vectorEmbeddingPolicy": {
        "vectorEmbeddings": [
            {
                "path": "/vector1",
                "dataType": "int8",
                "dimensions": 1200,
                "distanceFunction": "dotproduct"
            },
            {
                "path": "/vector2",
                "dataType": "uint8",
                "dimensions": 3,
                "distanceFunction": "cosine"
            },
            {
                "path": "/vector3",
                "dataType": "float32",
                "dimensions": 400,
                "distanceFunction": "euclidean"
            }
        ]
    },
    "id": "test_binary_vector_container_6",
    "partitionKey": {
        "paths": [
            "/pk"
        ],
        "kind": "Hash"
    }
}

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

Closing issues

To automatically close an issue: closes #4628

- Code changes to add partitioned disk ann changes.

- Code changes to add vector index specs for partitioned disk ann.

- Code changes to update vector indexing definition.

- Code changes to remove unsupported data types.
Comment thread Microsoft.Azure.Cosmos/src/Resource/Settings/VectorDataType.cs
@kundadebdatta
kundadebdatta marked this pull request as ready for review October 15, 2024 18:22
@kundadebdatta kundadebdatta self-assigned this Oct 15, 2024
Comment thread Microsoft.Azure.Cosmos/src/Fluent/Settings/VectorIndexDefinition.cs Outdated
Comment thread Microsoft.Azure.Cosmos/src/Fluent/Settings/VectorIndexDefinition.cs Outdated
Comment thread Microsoft.Azure.Cosmos/src/Resource/Settings/VectorDataType.cs
Comment thread Microsoft.Azure.Cosmos/src/Resource/Settings/Embedding.cs Outdated
Comment thread Microsoft.Azure.Cosmos/src/Resource/Settings/VectorIndexPath.cs
Pilchie
Pilchie previously approved these changes Oct 16, 2024
Comment thread Microsoft.Azure.Cosmos/src/Fluent/Settings/VectorIndexDefinition.cs Outdated
Comment thread Microsoft.Azure.Cosmos/src/Fluent/Settings/VectorIndexDefinition.cs Outdated
Comment thread Microsoft.Azure.Cosmos/src/Resource/Settings/Embedding.cs
Comment thread Microsoft.Azure.Cosmos/src/Resource/Settings/VectorIndexPath.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Vector Index] Remove Unsupported Data Types from Embedding Contract

4 participants