尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
向量数据库Milvus: 高级搜索(四)
一、过滤搜索Filtered Search过滤搜索是指在向量检索的同时用标量条件过滤数据。1. 为什么需要过滤搜索假设有一个电商商品库用户想找“500 元以下的运动鞋”。如果只用向量搜索可能会返回“高端运动鞋”如果只用标量过滤又无法按“相关性”排序。过滤搜索把两者结合起来。2. 基本用法results client.search( collection_nameproducts, data[query_vector], limit10, filterprice 500 and category 运动鞋, output_fields[name, price, category] )3. 支持的过滤表达式类型示例比较price 100、age 30、status ! deleted逻辑price 100 and category 鞋、a 1 or b 2集合category in [鞋, 衣服]、id not in [1, 2, 3]模糊匹配title like 运动%、title like %鞋%数组ARRAY_CONTAINS(tags, 热销)JSONmetadata[color] red空值field is null、field is not null4. 模糊匹配# 前缀匹配以运动开头 filtertitle like 运动% # 后缀匹配以鞋结尾 filtertitle like %鞋 # 包含匹配包含运动 filtertitle like %运动% # 单字符匹配 filtertitle like 运_鞋 # 匹配运动鞋、运力鞋5. 在查询中预过滤 vs 后过滤方式说明性能预过滤先过滤再向量检索数据量小时快后过滤先向量检索再过滤可能返回不足 limit 条Milvus 会自动优化过滤时机通常无需手动指定。二、混合搜索Hybrid Search混合搜索是指同时使用多个向量字段或多个查询向量进行检索然后融合结果。1. 为什么需要混合搜索单一向量检索有局限性稠密向量擅长语义匹配但可能漏掉关键词稀疏向量擅长关键词匹配但不懂语义两者结合效果更好。2. 多向量字段的 Collectionfrom pymilvus import FieldSchema, CollectionSchema, DataType fields [ FieldSchema(nameid, dtypeDataType.INT64, is_primaryTrue, auto_idTrue), FieldSchema(namedense_vector, dtypeDataType.FLOAT_VECTOR, dim768), FieldSchema(namesparse_vector, dtypeDataType.SPARSE_FLOAT_VECTOR), FieldSchema(nametext, dtypeDataType.VARCHAR, max_length512), ] schema CollectionSchema(fieldsfields) client.create_collection( collection_namehybrid_docs, schemaschema )3. 为不同向量字段创建索引# 稠密向量索引 client.create_index( collection_namehybrid_docs, field_namedense_vector, index_params{ index_type: HNSW, metric_type: COSINE, params: {M: 16, efConstruction: 200} } ) # 稀疏向量索引 client.create_index( collection_namehybrid_docs, field_namesparse_vector, index_params{ index_type: SPARSE_INVERTED_INDEX, metric_type: IP } )4. 执行混合搜索from pymilvus import AnnSearchRequest, RRFRanker # 稠密向量查询 dense_request AnnSearchRequest( data[dense_query_vector], anns_fielddense_vector, param{metric_type: COSINE, params: {ef: 100}}, limit20 ) # 稀疏向量查询 sparse_request AnnSearchRequest( data[sparse_query_vector], anns_fieldsparse_vector, param{metric_type: IP}, limit20 ) # 融合结果RRF 排序 results client.hybrid_search( collection_namehybrid_docs, reqs[dense_request, sparse_request], rankerRRFRanker(k60), # RRF 融合 limit10, output_fields[text] )5. 结果融合策略策略说明RRFReciprocal Rank Fusion基于排名融合无需调参推荐WeightedRanker加权融合可调整各路的权重from pymilvus import WeightedRanker # 加权融合稠密向量占 70%稀疏向量占 30% results client.hybrid_search( collection_namehybrid_docs, reqs[dense_request, sparse_request], rankerWeightedRanker(0.7, 0.3), limit10 )三、常见问题问题原因解决方案检索结果不相关Embedding 模型不合适换更好的模型如 bge-large-zh检索速度慢索引参数不合适调大ef或nprobe返回结果不足过滤条件太严格放宽过滤条件插入失败维度不匹配检查维度是否和 Schema 一致内存占用高索引类型不合适换 IVF_PQ 或 DiskANN
RELATED

相关推荐

清华唐杰大模型课程改革:从理论到全链路实操项目

清华唐杰大模型课程改革:从理论到全链路实操项目

1. 这门课到底在教什么:从“听讲座”到“交作业”的转变唐杰老师在清华开课不算新闻,但这次把课程内容整个翻新,让学生直接上手跑通大模型全链路,这件事值得细说。我翻了一圈流出的课程大纲和学生的零散反馈,核心变化就…

📅 2026/9/25 19:51:48
自动化生成多节点聚合排障周报:AI 提炼全网流量趋势与风险 Top5

自动化生成多节点聚合排障周报:AI 提炼全网流量趋势与风险 Top5

自动化生成多节点聚合排障周报:AI 提炼全网流量趋势与风险 Top5在大型企业级分布式基础设施运维中,运维团队每周都需要向技术总监(CTO)和安全委员会提交一份**《全网网络流量与安全运行周度分析报表》**。 在过去,这项…

📅 2026/9/25 19:46:48
【YOLO26多模态融合改进】| SDFM 表层细节融合模块,利用通道-空间注意力机制,实现跨模态特征融合,抑制噪声干扰

【YOLO26多模态融合改进】| SDFM 表层细节融合模块,利用通道-空间注意力机制,实现跨模态特征融合,抑制噪声干扰

一、本文介绍 本文记录的是利用SDFM 模块改进 YOLO26 的多模态融合部分。 SDFM模块(Surface Detail Fusion Module,表层细节融合模块) 通过在特征提取网络的浅层引入通道-空间注意力机制,动态生成跨模态特征融合权重。该模块可自适应保留不同模态中的独特信息,抑制背景噪…

📅 2026/9/25 19:46:48
MORE NEWS

更多资讯

📰

python列表反转函数

这个列表反转的功能是由特定的函数来完成的, 它的作用是可以将原列表内部的元素排列顺序进行逆向调整, 并且这个过程会直接对原始列表产生修改效果。列表反转函数可以使用()方法或者切片操作来实现,下面是详细的解释和示例代码:1. () 方法()方法是列表对…

📰

广州PYTHON网络自动化编程课程-python 自动化培训-广州誉天教育

在广州誉天教育的网络自动化编程课程里面, 学员们会去熟悉那些基本语法、各种各样的数据类型, 还有像条件语句与循环语句这样的控制结构等等, 通过学习, 学员们能够学会使用这些知识来编写简单一些的程序, 比如说用来计算或者进行数据处理之类的操作。关于未来的发展趋势。长期…

📰

Python第七十二讲 文件操作全套精讲 读写TXT 创建文件 追加内容

在前面我们所完成的学习过程当中, 之前我们已经学习且掌握了所有内容基础语法以及四大数据容器还有综合实战项目这些知识点。从此刻起, 我们便正式地、毫无保留地踏入了自动化核心技能领域中的一个重要分支, 那就是针对文件的操作与维护相关工作。所有的自动化程序、爬虫工具、…

📰

家庭急救箱智能盘点与药品过期视觉预警 Agent:筑牢家庭安全第一防线

家庭急救箱智能盘点与药品过期视觉预警 Agent:筑牢家庭安全第一防线在每个家庭的客厅角落或卧室抽屉里,几乎都有一个装满了各类常备药品的家庭小药箱:感冒冲剂、创可贴、烫伤膏、降压药、抗生素、布洛芬缓释胶囊、退热贴。 然而,传…

📰

Atlas 300V 24G是AI推理加速卡?YOLO部署实战全攻略

Atlas 300V 24G是运算加速卡吗?这个问题我几乎每周都能在群里看到一次。如果你现在正搜"atlas部署yolo",大概率是手头有一张昇腾Atlas推理卡,或者正犹豫要不要买一张来做目标检测。这篇我就把它聊透:它到底算不算加速卡…

📰

羊行为识别数据集 | 羊行为识别 智慧畜牧 动物福利 进食检测 卧息识别9112期

羊行为识别数据集 | 羊行为识别 智慧畜牧 动物福利 进食检测 卧息识别9112期 数据集概述 本数据集专注于养殖场景下羊只行为状态的视觉识别,服务于智慧畜牧、动物福利评估及牧场精细化管理。数据涵盖三种典型行为类别,适配行为监测、健康预警及管理决策…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬