MilvusException 创建索引时索引类型无效

问题描述 投票:0回答:1

我试图在我的 Milvus 集合中创建索引,但我不断收到下面的错误,我很困惑为什么会出现这种情况。

pymilvus.exceptions.MilvusException: <MilvusException: (code=65535, message=invalid index type: IVF_FLAT, local mode only support FLAT HNSW AUTOINDEX: )>

这是我一直在执行的代码。该脚本适用于 Milvus 2.3.15 和 pymilvus 2.3.7,但是,我在 pymilvus 2.4.4 和 milvus 2.4.0 中没有得到相同的结果。

from pymilvus import (Collection, CollectionSchema, DataType, utility, FieldSchema,connections)

connections.connect(alias='default', uri='localhost', port=19530)

fields = [
        FieldSchema(name='id', dtype=DataType.VARCHAR, max_length=50, is_primary=True),
        FieldSchema(name='community_id', dtype=DataType.INT64),
        FieldSchema(name='content', dtype=DataType.VARCHAR, max_length=65535),
        FieldSchema(name='dense_embedding', dtype=DataType.FLOAT_VECTOR, dim=3072),
    ]

schema = CollectionSchema(
            fields=fields,
            description='docs schema',
            auto_id=False,
            enable_dynamic_field=True
        )
dense_index = {
            "index_type": "IVF_FLAT",
            "metric_type": "L2",
            "params": {"nlist": 500},
        }

collection = Collection(
    name='docs',
    schema=schema,
    num_shards=2,
    consistency_level='Strong'
)        
collection.create_index("dense_embedding", dense_index)
indexing collections vector-database milvus
1个回答
0
投票

根本原因是:连接参数不正确。

connections.connect(uri='localhost', port=19530)
应该
connections.connect(host='localhost', port=19530)

uri='localhost' 将启动 milvus lite,这是一个本地轻量级服务器。通过连接,所有 API 都将重定向到精简版服务器,而不是独立容器。

© www.soinside.com 2019 - 2024. All rights reserved.