当前位置: 首页 > news >正文

湖州公司网站建设小程序网站建设制作

湖州公司网站建设,小程序网站建设制作,科技画4k纸科幻画一等奖,如何做网站的映射在向量搜索中,过滤(Filtering) 是保证结果精准性和业务契合度的关键手段。Qdrant 的过滤机制不仅能在向量相似度检索的基础上叠加结构化条件,还提供了灵活的布尔逻辑组合,让我们可以像写数据库查询一样,精准…

在向量搜索中,过滤(Filtering) 是保证结果精准性和业务契合度的关键手段。

Qdrant 的过滤机制不仅能在向量相似度检索的基础上叠加结构化条件,还提供了灵活的布尔逻辑组合,让我们可以像写数据库查询一样,精准控制搜索范围。

本文将深入解析 Qdrant 的过滤规则,并结合 Python 实例演示 must、should、must_not 的用法。


1. 过滤机制的意义

向量检索只考虑语义相似度,但在实际业务中往往需要额外的约束:

  • 电商:只展示“价格低于 1000 元”的笔记本

  • 招聘:只匹配“3 年以上经验”的候选人

  • 地图搜索:只返回“当前城市”的餐厅

Qdrant 的 Filtering 就是为这些结构化条件而生的。


2. 三大核心关键字

2.1 must — 必须满足的条件(AND)

  • 定义:列表中的所有条件都必须成立。

  • 逻辑:等价于 AND。

JSON 示例:

"filter": {"must": [{ "key": "city", "match": { "value": "London" } },{ "key": "price", "range": { "lte": 1000 } },{ "key": "brand", "match": { "value": "Apple" } }]
}

解释:只返回满足

city = London 且 price ≤ 1000 且 brand = Apple 的结果。

Python 实操:

from qdrant_client import QdrantClient
from qdrant_client.models import Filter, FieldCondition, MatchValue, Rangeclient = QdrantClient("localhost", port=6333)search_result = client.search(collection_name="products",query_vector=[0.1, 0.2, 0.3, 0.4],limit=5,query_filter=Filter(must=[FieldCondition(key="city", match=MatchValue(value="London")),FieldCondition(key="price", range=Range(lte=1000)),FieldCondition(key="brand", match=MatchValue(value="Apple"))])
)print(search_result)

2.2 should — 可选条件(OR / 排序加权)

  • 定义:

    • 有 must 时:should 条件不满足也会返回,但满足的结果会排前。

    • 无 must 时:should 至少要有一个条件成立(OR 逻辑)。

JSON 示例:must + should

"filter": {"must": [{ "key": "city", "match": { "value": "London" } }],"should": [{ "key": "brand", "match": { "value": "Apple" } }]
}

解释:必须在伦敦;Apple 品牌排前,不是 Apple 也会返回。

Python 实操:

from qdrant_client.models import ShouldConditionsearch_result = client.search(collection_name="products",query_vector=[0.1, 0.2, 0.3, 0.4],limit=5,query_filter=Filter(must=[FieldCondition(key="city", match=MatchValue(value="London"))],should=[FieldCondition(key="brand", match=MatchValue(value="Apple"))])
)

2.3 must_not — 排除条件(NOT)

  • 定义:列表中的条件必须全部不成立。

  • 逻辑:等价于 NOT。

JSON 示例:

"filter": {"must_not": [{ "key": "brand", "match": { "value": "Asus" } }]
}

解释:排除 Asus 品牌。

Python 实操:

search_result = client.search(collection_name="products",query_vector=[0.1, 0.2, 0.3, 0.4],limit=5,query_filter=Filter(must_not=[FieldCondition(key="brand", match=MatchValue(value="Asus"))])
)


3. min_should 高级用法

min_should 可要求 should 中必须满足最少数量。

JSON 示例:至少满足 2 个特性

"filter": {"should": [{ "key": "feature", "match": { "value": "touchscreen" } },{ "key": "feature", "match": { "value": "ssd" } },{ "key": "feature", "match": { "value": "backlit_keyboard" } }],"min_should": {"min_count": 2}
}

Python 实操:

from qdrant_client.models import Filter, FieldCondition, MatchValue, MinShouldsearch_result = client.search(collection_name="products",query_vector=[0.1, 0.2, 0.3, 0.4],limit=5,query_filter=Filter(should=[FieldCondition(key="feature", match=MatchValue(value="touchscreen")),FieldCondition(key="feature", match=MatchValue(value="ssd")),FieldCondition(key="feature", match=MatchValue(value="backlit_keyboard"))],min_should=MinShould(min_count=2))
)

4. 总结

  • must = 全部必须成立(AND)

  • should = 无 must 时是 OR;有 must 时影响排序

  • must_not = 必须全部不成立(NOT)

  • min_should = 要求 should 中命中的最小数量

在实际业务中,可以先用简单的 must / should / must_not 组合调试逻辑,再引入嵌套和 min_should 做更复杂的检索策略。

http://www.dtcms.com/a/522431.html

相关文章:

  • 网站怎么做数据分析WordPress注册邮件美化
  • 网站模板织梦重庆祥云平台做网站
  • 怎么做相亲网站百度导航下载2022最新版官网
  • 世纪城网站建设自己能自学网站建设吗
  • 淘客做网站运营在百度平台如何做营销
  • 济南网站建设富库网络自已建网站
  • 网站优化排名软件凡客建站快车
  • 东莞网站系统哪里好wordpress外贸数码
  • 现在怎么做网站百度竞价登陆
  • 做海报的话网站高性能wordpress
  • 网站建设和淘宝店装修是不是一样做网站技术方法有
  • 如何做网站英文简历模板深圳专业网站建设公司多少钱
  • 北京什么网站找工作网站商城的公司运营结构
  • 任丘建设网站彩页设计报价
  • 网站建设好了怎么在百度可以搜到光电网站设计
  • 综合信息网站模板商服网站模板
  • 睢宁县凌城做网站的浙江同凯建设深圳公司
  • 东莞海边网站建设工作室好用的网站开发编辑器
  • 自学网站开发难吗百度网站收录查询
  • 免费中文网站模板建设银行app忘记登录密码
  • 金华专业网站建设公司虾子酱 wordpress
  • 做镜像网站域名查询 阿里云
  • 网站内页修改关键字青岛胶南做网站的有多少
  • 常用网站字体商业模式包括哪些模式
  • 音乐网站页面设计搜索引擎营销图片
  • 设置网站的关键词wordpress加入图片
  • 胶州做网站中考复读学校网站怎么做
  • 上海嘉定网站建设公司维护一个网站
  • 蔬菜类网站建设规划书seo基础入门视频教程
  • 网站seo外链html php网站开发