id: create_drop_index_python.md

创建、删除索引

本页提供创建或删除索引的 Python 示例代码。

创建索引

目前,一个集合只支持一种索引类型,切换索引类型会自动删除旧的索引文件。在创建其它索引前,FLAT 作为集合的默认索引类型。

create_index() 会指定该集合的索引类型,并同步为之前插入的数据建立索引,后续插入的数据在大小达到 index_file_size 时,索引会在后台自动建立。在实际生产环境中,如果是流式数据,建议在插入向量之前先创建索引,以便后续系统自动建立;如果是静态数据,建议导入所有数据后再一次性创建索引。更多索引用法请参考 索引示例程序
  1. 准备创建索引所需参数(以 IVF_FLAT 为例)。索引参数是一个 JSON 字符串,在 Python SDK 中以字典来表示。

    1. # Prepare index param.
    2. >>> ivf_param = {'nlist': 16384}
    对于不同的索引类型,创建索引所需参数也有区别。所有的索引参数都必须赋值。详细信息请参考 Milvus 索引类型
  1. 为指定集合创建索引:

    1. # Create an index.
    2. >>> milvus.create_index('test01', IndexType.IVF_FLAT, ivf_param)
    使用IVF_SQ8H建索引或查询时必须启用 GPU。

删除索引

删除索引后,集合再次使用默认索引类型 FLAT。

  1. >>> milvus.drop_index('test01')

常见问题

建索引参数 nlist 的大小该如何选择? {{fragments/faq_set_nlist.md}}
Milvus 可以在同一个集合中的不同分区上建立不同索引吗? {{fragments/faq_collection_different_index.md}}
Milvus 中支持新增向量后再建索引吗? {{fragments/faq_create_index_after_insertion.md}}