
Milvus | Chroma
文章平均质量分 94
向量数据库
彬彬侠
基于 Python 的 AI 算法工程师
展开
-
【Milvus】Milvus 的图形用户界面:Attu
Attu 是由 Zilliz 开发并开源的 Milvus 图形用户界面(GUI) 工具,专为管理 Milvus 向量数据库设计。它提供直观的界面,简化数据库操作,降低运维成本。通过直观界面简化数据库管理、数据操作、向量搜索和系统监控。它支持 Docker、Helm 和桌面应用部署,适用于本地和云端环境。核心功能包括集合管理、数据导入查询、向量搜索、索引创建和系统拓扑监控,特别适合开发、运维和数据探索场景。Attu 的插件系统和社区支持使其具有良好扩展性。原创 2025-04-28 19:14:48 · 924 阅读 · 0 评论 -
【Milvus】数据导入(Data Import)
Milvus 的 数据导入 功能通过 BulkWriter(LocalBulkWriter 和 RemoteBulkWriter)准备 JSON 或 Parquet 数据,并使用 bulk_import API 高效插入到集合。RemoteBulkWriter 自动上传数据到 MinIO,适合生产环境。示例代码展示了从 Schema 创建到数据导入的完整流程,支持密集向量、稀疏向量和动态字段。导入作业支持异步执行和进度监控,适用于大规模数据初始化和增量更新。原创 2025-04-28 19:03:47 · 789 阅读 · 0 评论 -
【Milvus】利用模型(Models)计算 查询和文档 的相关性得分 进行 Rerankers (重新排序)
Milvus 的 Rerankers 通过 pymilvus.model.reranker 集成 BGE、Cross Encoder(开源)和 Cohere、Voyage、Jina AI(API)模型,用于优化 ANN 搜索结果的排序。Rerankers 接受查询和文档,输出相关性得分,显著提升结果的语义相关性。示例代码展示了如何结合 SentenceTransformers 嵌入模型和多种 Rerankers,实现初步搜索和结果精炼,适用于 RAG、语义搜索和多语言检索。原创 2025-04-28 18:53:04 · 783 阅读 · 0 评论 -
【Milvus】嵌入模型(Embedding Models)的概述、列举和示例代码
Milvus 通过 pymilvus[model] 集成多种嵌入模型,支持密集向量(OpenAI、SentenceTransformers、Voyage、Gemini、Instructor、Model2Vec)和稀疏向量(SPLADE)以及混合向量(BGE-M3、mGTE)。这些模型通过 encode_documents() 和 encode_queries() 生成向量,存储到 Milvus 后支持高效搜索。嵌入模型(Embedding Models) 是将数据(如文本、图像)映射到高维空间的机器学习模型原创 2025-04-28 18:16:56 · 1114 阅读 · 0 评论 -
【Milvus】将 Elasticsearch 查询转至 Milvus
将 Elasticsearch 查询 转换为 Milvus 查询 是一个常见需求,特别是在需要从 Elasticsearch 迁移到 Milvus 2.x 或结合两者进行混合搜索时。Milvus 2.5.10 是一个高性能的向量数据库,擅长处理向量相似性搜索(如 ANN)和全文检索(BM25),而 Elasticsearch 主要用于全文搜索和分析。本节将详细说明如何将常见的 Elasticsearch 查询转换为 Milvus 查询,涵盖查询类型、数据映射、配置方法、代码示例和注意事项。原创 2025-04-28 15:43:47 · 1009 阅读 · 0 评论 -
【Milvus】过滤(Filtering)的 概述 和 表达式
过滤(Filtering) 是 Milvus 向量数据库中用于在搜索和查询过程中对数据进行筛选的重要机制。过滤通过对标量字段(如 INT64、VARCHAR、JSON)或向量字段(如 FLOAT_VECTOR、SPARSE_FLOAT_VECTOR)应用条件表达式,限制返回结果的范围,从而支持精确匹配、范围查询、全文检索等功能。过滤表达式通常作为 filter 或 expr 参数传递,配合索引(如 INVERTED、TRIE)加速执行。过滤常与向量搜索、混合搜索和查询结合使用,广泛应用于推荐系统、RAG(R原创 2025-04-28 15:32:52 · 926 阅读 · 0 评论 -
【Milvus】搜索(Search) 和 重新排序(Rerank)的概述和应用
搜索(Search) 和 重新排序(Rerank) 是 Milvus 向量数据库中用于执行高效向量相似性搜索和优化结果排名的核心功能。搜索用于查找与查询向量最相似的记录,而重新排序则通过额外的排名算法对搜索结果进行优化,以提高相关性或满足特定业务需求。Milvus 支持 向量搜索、标量过滤、全文检索 和 混合搜索,并通过重新排序机制(如 RRFRanker 或自定义排序)进一步调整结果顺序。本文包括定义、特性、支持的搜索类型、重新排序方法、代码示例、适用场景和注意事项。原创 2025-04-28 14:44:50 · 1010 阅读 · 0 评论 -
【Milvus】索引(Indexes)的概述、分类 和 配置方法
索引(Indexes) 是 Milvus 向量数据库中用于加速查询和搜索的关键机制。索引通过对数据(向量字段和标量字段)构建高效的数据结构,显著提升 向量相似性搜索、标量过滤 和 全文检索 的性能。Milvus 支持多种索引类型,针对不同字段类型(如 FLOAT_VECTOR、SPARSE_FLOAT_VECTOR、VARCHAR 等)优化查询效率。本文包括定义、特性、支持的索引类型、配置方法、代码示例、适用场景和注意事项。原创 2025-04-28 11:36:22 · 526 阅读 · 0 评论 -
【Milvus】BM25(Best Matching 25)的定义、原理和应用
BM25(Best Matching 25)是一种广泛用于信息检索的排名函数,特别适合全文检索(Full Text Search) 场景。它是对传统 TF-IDF(Term Frequency-Inverse Document Frequency)模型的改进,通过引入词频饱和(Term Frequency Saturation)和文档长度归一化(Document Length Normalization)来优化文档与查询的相关性评分。BM25 在 Milvus 中被用来支持全文检索,将文本转换为稀疏向量(S原创 2025-04-28 11:03:34 · 947 阅读 · 0 评论 -
【Milvus】分析器(Analyzer) 在全文检索(Full Text Search) 和文本匹配(Text Match) 中的应用
全文检索 是一种基于关键词或短语的文档检索方式,通过 BM25 算法对结果按相关性评分排序。文本匹配 是一种精确的文档检索方式,专注于查找包含特定查询词的文档,不对结果进行相关性评分。Milvus 的分析器(Analyzer) 是全文检索和文本匹配的基础,通过分词和过滤将文本转换为可搜索的令牌。全文检索 使用 BM25 算法和稀疏向量,按相关性评分排序,适合 RAG 和关键词搜索;文本匹配使用倒排索引和 TEXT_MATCH 表达式,适合精确过滤。分析器支持 standard、english、chinese原创 2025-04-28 00:34:52 · 798 阅读 · 0 评论 -
【Milvus】分析器(Analyzer)的概述和操作
分析器(Analyzer) 是 Milvus 向量数据库用于处理文本字段(特别是 VARCHAR 字段)的重要组件,通过分词器(standard, whitespace, jieba)和过滤器(lowercase, stemmer 等)将文本转换为可搜索的令牌,以支持高效的文本检索和过滤,支持内置分析器(standard, english, chinese)和自定义分析器,主要用于标量过滤(Text Match, 文本匹配)和全文搜索(Full Text Search)场景。选择分析器:通用场景:使用 st原创 2025-04-27 22:51:55 · 860 阅读 · 0 评论 -
【Milvus】Schema 和 数据字段(Data Fields) 的概述和操作
Schema 和 Data Fields 是 Milvus 向量数据库中用于定义集合(Collection)结构的核心组件。Schema 定义了集合的整体数据结构,指定了字段(Fields)的名称、类型和约束,而 Data Fields 则是 Schema 中的具体字段,描述数据的属性(如主键、向量、标量)。这些组件共同决定了集合如何存储和处理向量数据及其关联元数据。本文包含了定义、特性、支持的字段类型、配置方法、代码示例、适用场景和注意事项。原创 2025-04-27 20:38:47 · 897 阅读 · 0 评论 -
【Milvus】集合(Collections)的概述和操作
集合(Collections) 是 Milvus 向量数据库的核心数据组织单元,用于存储和管理向量数据及其关联的标量数据。集合类似于传统数据库中的表,是数据存储、索引和查询的基本实体。支持灵活的 schema 定义、分区管理、动态字段和多向量字段。集合操作包括创建、加载、插入、索引、查询、搜索和删除,与数据库、标量/向量索引、一致性级别无缝集成。集合适用于向量搜索、混合查询和多模态数据管理,广泛应用于推荐系统、图像检索等领域。原创 2025-04-27 19:56:38 · 858 阅读 · 0 评论 -
【Milvus】数据库(Database)的概述和操作
在 Milvus 中数据库(Database) 是一个逻辑概念,用于组织和管理多个集合(Collection),提供命名空间隔离和多租户支持。Milvus 的数据库功能允许用户在同一个 Milvus 实例中创建多个数据库,每个数据库可以包含多个集合,从而实现数据的逻辑隔离、权限管理和灵活的组织方式。本文包含了数据库的创建、列出、切换和删除,还包括定义、特性、操作方法、代码示例、适用场景和注意事项原创 2025-04-27 18:12:11 · 1042 阅读 · 0 评论 -
【Milvus】数据一致性级别(Consistency Level):Strong、Bounded、Session、Eventual
一致性级别(Consistency Level)是 Milvus 向量数据库的一个重要特性,用于控制查询和搜索操作时数据的一致性程度。Milvus 提供四种一致性级别,允许用户根据需求灵活配置:Strong(强一致性),Bounded(有界一致性),Session(会话一致性),Eventual(最终一致性)。Strong 适合准确性敏感场景,Bounded 平衡一致性和性能,Session 适合用户会话,Eventual 优化高吞吐量场景。用户可以通过集合级别的 consistency_level 设置默原创 2025-04-26 18:42:57 · 584 阅读 · 0 评论 -
【Milvus】 支持的度量类型(Metric Types)列举和说明
Milvus 支持的度量类型涵盖浮点向量(L2、IP、COSINE)、二进制向量(HAMMING、JACCARD、TANIMOTO)和稀疏向量(IP),满足多样化的相似性计算需求。浮点向量度量适用于通用场景,二进制向量度量高效且节省存储,稀疏向量度量专为稀疏数据优化。度量类型决定了如何计算两个向量之间的距离或相似度,选择度量类型时,需考虑向量类型、数据预处理(如归一化)和应用场景(如语义搜索或集合比较)。原创 2025-04-26 12:28:56 · 948 阅读 · 0 评论 -
【Milvus】 标量索引(Scalar Index):Trie、STL_SORT、Inverted Index、Bitmap、Auto Index
Milvus 支持的标量索引类型包括:Trie:用于 VARCHAR 字段,优化字符串匹配。STL_SORT:用于数值字段(BOOL、INT8、INT16、INT32、INT64、FLOAT、DOUBLE),优化排序和范围查询。Inverted Index:用于 BOOL、INT8、INT16、INT32、INT64、FLOAT、DOUBLE、VARCHAR 和 ARRAY,优化等值和范围查询。Bitmap:用于 BOOL、INT8、INT16、INT32、INT64 和 VARCHAR,优化高基数字段的等原创 2025-04-26 11:51:16 · 679 阅读 · 0 评论 -
【Milvus】向量索引(Vector Index)的类型:内存索引、磁盘索引 和 GPU 索引
Milvus 向量数据库支持多种向量索引类型,旨在优化高维向量数据的相似性搜索(ANN,近似最近邻搜索)。这些索引类型根据存储介质和计算硬件的不同,分为 内存索引、磁盘索引 和 GPU 索引,每种索引针对特定场景(如精度、速度、内存占用或硬件支持)进行了优化。内存索引(如 HNSW、IVF_FLAT)适合高性能场景,磁盘索引(DiskANN)适合超大规模数据,GPU 索引(GPU_CAGRA、GPU_IVF_PQ)适合高吞吐量应用。稀疏索引(如 SPARSE_INVERTED_INDEX)优化了关键词搜索,原创 2025-04-26 10:30:43 · 913 阅读 · 0 评论 -
【Milvus】主要数据类型(向量类型和标量类型)列举和说明
Milvus 向量数据库支持多种数据类型,用于存储向量及其关联的元数据。Milvus 支持以下主要数据类型:向量类型:FLOAT_VECTOR、BINARY_VECTOR、FLOAT16_VECTOR、BFLOAT16_VECTOR、SPARSE_FLOAT_VECTOR,标量类型:BOOL、INT8、INT16、INT32、INT64、FLOAT、DOUBLE、VARCHAR、JSON、ARRAY。这些数据类型用于定义集合(Collection)的 schema,涵盖向量字段和标量字段,适用于不同的应用场原创 2025-04-25 21:20:24 · 1102 阅读 · 0 评论 -
【Milvus】pymilvus 中 常用的操作函数 例举和说明
pymilvus 是 Milvus 向量数据库的 Python SDK,为用户提供了与 Milvus 服务交互的接口,用于管理集合、插入向量、构建索引、执行搜索等操作。在版本 2.5.x 中,pymilvus 提供了灵活的 MilvusClient 模块和传统的 ORM(对象关系映射)模块,支持同步和异步操作,并新增了模型集成(如嵌入生成)。pymilvus 2.5.0 提供了丰富的 API,涵盖连接管理、集合管理、数据操作、索引管理、搜索与查询、分区管理、模型集成和异步操作。原创 2025-04-25 18:34:47 · 812 阅读 · 0 评论 -
【Milvus】Milvus 快速入门指南
本教程将提供了一个 Milvus 快速入门指南,帮助快速上手 Milvus 向量数据库。教程基于 Milvus 2.x,使用 Docker 部署 Milvus 和 Python SDK(pymilvus)进行操作。从安装开始,逐步完成创建集合、插入向量、构建索引、执行搜索等核心操作,最后展示一个简单的语义搜索示例。本教程展示了如何通过 Docker 安装 Milvus、安装 pymilvus、执行核心操作,并实现简单的语义搜索。部署 Milvus 并连接到服务。创建集合、插入向量、构建索引和执行搜索。使用原创 2025-04-24 21:39:48 · 887 阅读 · 0 评论 -
【Milvus】安装 Milvus 的 Python SDK(pymilvus)
安装 Milvus 的 Python SDK(pymilvus)非常简单,只需通过 pip 安装并验证即可。关键步骤包括:使用 pip3 install pymilvus 安装 SDK。通过导入 pymilvus 和连接 Milvus 服务验证安装。遇到问题时,检查 Python 环境、网络连接和版本兼容性。原创 2025-04-23 21:23:26 · 879 阅读 · 0 评论 -
【Milvus】安装 Milvus:Docker、Docker Compose、Kubernetes
Milvus 提供了多种部署方式,包括 Docker(单机部署)、Docker Compose(单机多容器部署)以及 Kubernetes(分布式集群部署)。Docker 部署是安装 Milvus 最简单的方式,适合快速测试或开发环境。Docker Compose 部署将 Milvus 的组件(协调服务、查询节点、数据节点等)拆分为多个容器,模拟分布式架构,适合需要更高性能的单机环境或开发测试。Kubernetes 部署适合生产环境或需要高可用性和可扩展性的场景。Milvus 提供 Helm Chart 来原创 2025-04-23 21:08:31 · 941 阅读 · 0 评论 -
【Milvus】什么是 Milvus
Milvus 是一个开源的分布式向量数据库,专门设计用于存储、管理和搜索高维向量数据,广泛应用于机器学习和人工智能场景。它支持高效的相似性搜索(包括最近邻搜索和范围搜索),能够处理海量高维向量数据,同时提供灵活的扩展性和高性能。Milvus 是目前最流行的开源向量数据库之一,特别适合语义搜索、推荐系统、图像检索等应用。原创 2025-04-22 12:26:34 · 915 阅读 · 0 评论 -
什么是 向量数据库(Vector Database)
向量数据库(Vector Database)是一种专门设计用于存储、索引和管理高维向量数据的数据库系统。这些向量通常是机器学习模型(如深度学习模型)生成的嵌入(embeddings),用于表示文本、图像、音频等数据的语义特征。向量数据库的核心目标是高效地支持向量相似性搜索(Similarity Search),以便在海量数据中快速找到与查询向量最相似的向量。原创 2025-04-22 10:37:04 · 1024 阅读 · 0 评论