搜索
Milvus 商业版提供向量搜索功能,并针对向量搜索性能推出多种优化方案。在本章中,您将了解包括基本相似最近邻搜索(ANN)在内的多种搜索方式的原理、使用和相关注意事项。
基本 Vector Search [READ MORE]
近似最近邻(ANN)Search 通过构建索引的方式对向量空间中的向量进行预排序,并在收到 Search 请求时根据索引快速定位到与查询向量相似可能性较高的子集中进行对比查询,从而提升查询效率。本节主要介绍如何使用 Milvus 进行 ANN Search 及相关的注意事项。
召回调优 [READ MORE]
Zilliz Cloud 引入了一个名为 `level` 的搜索参数,允许用户通过调整该参数来平衡召回率和搜索性能。同时,Zilliz Cloud 还允许用户设置 `enablerecallcalculation` 参数来决定是否在搜索结果中包含预估召回率信息。您可以配合使用这两个参数来对向量搜索结果进行调优。
Filtered Search [READ MORE]
近似最近邻(ANN) Search 可以根据指定的非结构化数据(向量)找到与之相似的一批非结构化数据(向量),但是无法做到精确匹配。对于简单的精确匹配需求,可以使用过滤条件表达式基于部分标量字段进行文本过滤。本节将介绍如何在 ANN Search 中使用过滤条件表达式及相关注意事项。
Range Search [READ MORE]
Range Search 是一种通过指定搜索结果的相似度得分范围的方式提升 ANN Search 的召回质量的搜索增强方法。本节将介绍如何使用 Range Search 以及相关注意事项。
Grouping Search [READ MORE]
如果搜索结果中所有 Entity 在某个标量字段上的取值都相同时,搜索结果可能并不能真实反映与查询向量相似的所有向量在向量空间中的分布情况。为了提升召回结果的多样性,可以考虑使用 Grouping Search。本节将介绍如何使用 Grouping Search 以及与之相关的注意事项。
多向量混合搜索 [READ MORE]
在许多应用中,可以通过丰富的信息集来搜索对象,例如标题和描述,或者通过多种模态,如文本、图像和音频。例如,如果文本或图像与搜索查询的语义匹配,则应搜索包含一段文本和一张图像的推文。混合搜索通过结合跨这些不同字段的搜索来增强搜索体验。Zilliz Cloud 通过允许在多个向量字段上进行搜索,同时执行多个近似最近邻(ANN)搜索来支持这一点。如果您想同时搜索文本和图像、描述同一对象的多个文本字段,或者密集和稀疏向量以提高搜索质量,多向量混合搜索特别有用。
Query [READ MORE]
Zilliz Cloud 除了支持 ANN Search 外,还提供基于标量的过滤查询功能。本节将介绍如何使用 Query、Get 和 QueryIterator 进行标量查询以及进行标量查询时的注意事项。
过滤表达式 [READ MORE]
本章将介绍如何在标量字段上进行过滤以及支持的过滤操作符和模板。
Full Text Search [READ MORE]
在 Zilliz Cloud 中,Full Text Search 是对基于稠密向量](./use-dense-vector)的语义搜索的补充。它能够在大规模文本集合中查找包含特定术语或短语的文本,弥补语义搜索的遗漏,从而提升整体搜索效果。它支持直接插入和使用原始文本数据进行相似性搜索,Milvus 会自动将文本转换为[稀疏向量](./use-sparse-vector)表示。Full Text Search 使用 [BM25 算法进行相关性评分,根据查询文本返回最相关的文档,从而提高文本搜索的整体精度。
Text Match [READ MORE]
Milvus 中的 Text Match 功能能够基于特定术语实现精确的文档检索。通过使用关键词预筛选文档,可以缩小向量搜索的范围,从而提升搜索效率。该功能还可以结合标量过滤,以进一步优化查询结果。
Elasticsearch 查询语句转换 [READ MORE]
基于 Apache Lucene 构建的 Elasticsearch 是领先的开源搜索引擎。然而,它在现代 AI 应用程序中面临挑战,包括高更新成本、较差的实时性能、低效的分片管理、非云原生设计以及过度的资源需求。作为云原生向量数据库,Zilliz Cloud 通过解耦的存储和计算、高维数据的高效索引以及与现代基础设施的无缝集成克服了这些问题,并为 AI 工作负载提供了卓越的性能和可扩展性。
Phrase Match [READ MORE]
短语匹配允许您搜索包含查询词为精确短语的文档。默认情况下,这些词必须按相同顺序且彼此直接相邻出现。例如,查询 "robotics machine learning" 会匹配类似 "…typical robotics machine learning models…" 这样的文本,其中 "robotics"、"machine" 和 "learning" 按顺序出现,中间没有其他词。
Search Iterator [READ MORE]
ANN Search 单次召回的 Entity 有最大数量限制,单纯使用基本 ANN Search 可能无法应对大规模召回的需求。对于 topK 大于 16,384 的 ANN Search 请求,可以考虑使用 Search Iterator。本节将介绍如何使用 Search Iterator 以及与相关的注意事项。
使用 Partition Key [READ MORE]
Partition Key 是一种基于 Partition 的搜索优化方案。通过指定某个标量字段为 Partition Key 并在搜索时指定基于 Partition Key 的过滤条件表达式将搜索范围缩小到若干 Partition 中,从而提高搜索效率。本文将介绍如何使用 Partition key 及相关注意事项。
使用 mmap [READ MORE]
Mmap 允许在不将磁盘上的文件加载到内存的情况下通过内存访问这些文件。通过配置 mmap,Zilliz Cloud 可以根据访问频次的不同将索引和数据分别存放到内存或磁盘上,不仅优化了数据加载行为,扩大了 Collection 的容量,也不会给搜索性能带来负面影响。本文将帮助您理解 Zilliz Cloud 如何利用 mmap 实现快速高效的数据存储和检索能力及使用该能力需要注意的相关事项。
一致性水平 [READ MORE]
作为一款分布式向量数据库,Zilliz Cloud 提供了多种一致性水平来确保在数据读写期间每个节点或副本都能获取到相同的数据。当前,支持使用的一致性水平包括 Strong、Bounded、Eventually 。其中,Bounded 是默认使用的一致性水平。
相似度类型 [READ MORE]
在度量向量相似性时,相似度类型发挥着关键作用。选择恰当的相似度类型可以极大地提升分类与聚类的效果。