基本 ANN 搜索
在 Milvus 中使用查询向量、输出字段、过滤器、范围和迭代器运行基本的 ANN 搜索。
过滤搜索
ANN 搜索能找到与指定 Embedding 最相似的 Embedding。但是,搜索结果不一定总是正确的。您可以在搜索请求中包含过滤条件,这样 Milvus 就会在进行 ANN 搜索前进行元数据过滤,将搜索范围从整个 Collection 缩小到只搜索符合指定过滤条件的实体。
范围搜索
范围搜索将返回实体的距离或得分限制在特定范围内,从而提高搜索结果的相关性。本页将帮助您了解什么是范围搜索以及进行范围搜索的步骤。
分组搜索
使用分组搜索可按字段值汇总 ANN 搜索结果,减少重复实体。
Search Aggregation
将向量搜索结果分组到 bucket,计算每个 bucket 的指标,对 bucket 排序,并返回代表性命中结果。
主键搜索
在进行相似性搜索时,总是会要求您提供一个或多个查询向量,即使查询向量已经存在于目标 Collection 中。为了避免在搜索前检索向量,可以使用主键来代替。
混合搜索
在许多应用中,可以通过标题和描述等丰富的信息集或文本、图像和音频等多种模式来搜索对象。例如,如果文本或图片与搜索查询的语义相符,就可以搜索包含一段文本和一张图片的推文。混合搜索将这些不同领域的搜索结合在一起,从而增强了搜索体验。Milvus 允许在多个向量字段上进行搜索,同时进行多个近似近邻(ANN)搜索,从而支持这种搜索。…
查询
使用 Query、Get 和 QueryIterator 在 Milvus 中检索实体、过滤元数据、对查询结果排序以及聚合标量值。
过滤
9 个项目
全文搜索
全文搜索是一种在文本数据集中检索包含特定术语或短语的文档,然后根据相关性对结果进行排序的功能。该功能克服了语义搜索的局限性(语义搜索可能会忽略精确的术语),确保您获得最准确且与上下文最相关的结果。此外,它还能接受原始文本输入,自动将文本数据转换为稀疏嵌入,无需手动生成 Embedding,从而简化了向量搜索。
文本匹配
Milvus 中的文本匹配功能可根据特定术语进行精确的文档检索。该功能主要用于满足特定条件的过滤搜索,并可结合标量过滤来细化查询结果,允许在符合标量标准的向量内进行相似性搜索。
文本高亮
Milvus 中的高亮显示器通过使用可定制的标签对文本字段中的匹配术语进行注释。高亮显示有助于解释文档匹配的原因,提高结果的可读性,并支持在搜索和 RAG 应用程序中进行丰富的渲染。
Phrase Match
短语匹配可让您搜索包含精确短语查询词的文档。默认情况下,单词必须以相同的顺序出现,并且彼此直接相邻。例如,查询 "机器人机器学习 "会匹配"...典型的机器人机器学习模型... "这样的文本,其中 "机器人"、"机器 "和 "学习 "依次出现,中间没有其他词。
使用 StructArray 搜索
7 个项目
将 Elasticsearch 查询转至 Milvus
基于 Apache Lucene 构建的 Elasticsearch 是领先的开源搜索引擎。然而,它在现代人工智能应用中面临着各种挑战,包括更新成本高、实时性差、分片管理效率低、非云原生设计以及资源需求过高。作为云原生向量数据库,Milvus 通过解耦存储和计算、高效的高维数据索引以及与现代基础设施的无缝集成,克服了这些问题。…
搜索迭代器
ANN Search 对单次查询可调用的实体数量有最大限制,因此仅使用基本 ANN Search 可能无法满足大规模检索的需求。对于 topK 超过 16,384 的 ANN Search 请求,建议考虑使用 SearchIterator。本节将介绍如何使用 SearchIterator 以及相关注意事项。
使用 Partition Key
Partition Key 是一种基于 Partition 的搜索优化解决方案。通过指定一个特定的标量字段作为 Partition Key,并在搜索过程中根据 Partition Key 指定过滤条件,可以将搜索范围缩小到几个 Partition,从而提高搜索效率。本文将介绍如何使用 Partition Key 及相关注意事项。