• 关于 Milvus
  • 开始
  • 概念
  • 用户指南
  • 数据导入
  • 人工智能工具
  • 管理指南
  • 工具
  • 集成
  • 教程
  • 常见问题
  • API Reference

将 Milvus 与 MindsDB 相集成

MindsDB是一款功能强大的工具,用于将人工智能应用程序与各种企业数据源集成。它作为一个联合查询引擎,在细致回答结构化和非结构化数据查询的同时,还能为无序的数据带来秩序。无论您的数据是分散在 SaaS 应用程序、数据库还是数据仓库中,MindsDB 都能使用标准 SQL 对其进行连接和查询。它通过知识库提供最先进的自主RAG系统,支持数百种数据源,并提供从本地开发到云环境的灵活部署选项。

本教程演示了如何将 Milvus 与 MindsDB 集成,通过类似 SQL 的操作来管理和查询向量嵌入,使您能够利用 MindsDB 的 AI 功能和 Milvus 的向量数据库功能。

本教程主要参考了MindsDB Milvus处理程序的官方文档。如果你在本教程中发现任何过时的部分,可以优先参考官方文档,并为我们创建一个问题。

安装MindsDB

开始之前,请通过DockerDocker Desktop在本地安装MindsDB。

在继续之前,确保你对MindsDB和Milvus的基本概念和操作符都有扎实的理解。

参数介绍

建立连接所需的参数如下

  • uri:Milvus 数据库的 uri,可以设置为本地".db "文件,也可以设置为 docker 或云服务。
  • token根据 uri 选项支持 docker 或云服务的令牌

用于建立连接的可选参数有

这些参数用于SELECT 查询:

  • search_default_limit:在选择语句中传递的默认限制(默认值=100)
  • search_metric_type:用于搜索的度量类型(默认="L2)
  • search_ignore_growing:在进行相似性搜索时是否忽略不断增长的片段(默认值=假)
  • search_params特定于search_metric_type (默认值={"nprobe":10})。

这些用于CREATE 查询:

  • create_auto_idid:插入无 ID 记录时是否自动生成 ID(默认值为 False)
  • create_id_max_len创建表格时 id 字段的最大长度(默认值=64)
  • create_embedding_dim创建表格时的嵌入维度(默认值=8)
  • create_dynamic_field创建的表是否有动态字段(默认为 true)
  • create_content_max_len内容列的最大长度(默认值=200)
  • create_content_default_value内容列的默认值(默认值='')
  • create_schema_description模式的描述(默认值='')
  • create_alias模式的别名(默认值='默认值)
  • create_index_params在 Embeddings 列上创建的索引的参数(default={})。
  • create_index_metric_type:用于创建索引的度量(默认值='L2')
  • create_index_type索引类型(默认='AUTOINDEX)

使用方法

在继续之前,请确保pymilvus 版本与此固定版本相同。如果发现版本兼容性问题,可以回滚 pymilvus 版本,或在此需求文件中自定义版本。

创建连接

为了使用该处理程序并连接到 MindsDB 中的 Milvus 服务器,可以使用以下语法:

CREATE DATABASE milvus_datasource
WITH
  ENGINE = 'milvus',
  PARAMETERS = {
    "uri": "./milvus_local.db",
    "token": "",
    "create_embedding_dim": 3,
    "create_auto_id": true
};
  • 如果你只需要一个本地向量数据库,用于小规模数据或原型设计,那么将uri设置为本地文件,如./milvus.db ,是最方便的方法,因为它会自动利用Milvus Lite将所有数据存储在这个文件中。
  • 如果要在生产中使用更大规模的数据和流量,可以在Docker 或 Kubernetes 上设置 Milvus 服务器。在此设置中,请使用服务器地址和端口作为uri ,例如http://localhost:19530 。如果启用了 Milvus 上的身份验证功能,请将token 设置为"<your_username>:<your_password>" ,否则无需设置令牌。
  • 您也可以在Zilliz Cloud 上使用完全托管的 Milvus。只需将uritoken 设置为 Zilliz Cloud 实例的公共端点和 API 密钥

放弃连接

要放弃连接,请使用此命令

DROP DATABASE milvus_datasource;

创建表格

要从预先存在的表中插入数据,请使用CREATE

CREATE TABLE milvus_datasource.test
(SELECT * FROM sqlitedb.test);

删除 Collection

不支持删除 Collections

查询和选择

要使用搜索向量查询数据库,可在WHERE 子句中使用search_vector

注意事项:

  • 如果省略LIMIT ,则会使用search_default_limit ,因为 Milvus 需要它
  • 不支持元数据列,但如果 Collections 启用了动态 Schema,则可以像普通查询一样进行查询,见下面的示例
  • 动态字段无法显示,但可以查询
SELECT * from milvus_datasource.test
WHERE search_vector = '[3.0, 1.0, 2.0, 4.5]'
LIMIT 10;

如果省略search_vector ,这将成为基本搜索,并返回LIMITsearch_default_limit 中的 Collections 条目数量

SELECT * from milvus_datasource.test

可以像普通 SQL 一样在动态字段上使用WHERE 子句

SELECT * FROM milvus_datasource.createtest
WHERE category = "science";

删除记录

可以像使用 SQL 一样使用DELETE 删除条目。

注意事项

  • Milvus 只支持删除具有明确指定主键的实体。
  • 只能使用IN 操作符
DELETE FROM milvus_datasource.test
WHERE id IN (1, 2, 3);

插入记录

您也可以像这样插入单个记录:

INSERT INTO milvus_test.testable (id,content,metadata,embeddings)
VALUES ("id3", 'this is a test', '{"test": "test"}', '[1.0, 8.0, 9.0]');

更新

Milvus API 不支持更新记录。你可以尝试使用DELETEINSERT


更多详情和示例,请参阅MindsDB官方文档

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?