❝开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3000人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7群均已爆满,开8群近400 9群 200+,将开10群)
群里禁止发广告,发了马上踢,不会提醒。
数据库一直在往前发展,从分布式,再到HTAP,向量场景的存储和查询,看着有些老师在AI方面有所建树,甚是羡慕,所以自己也得选择下一个数据库方面的赛道进行学习,hybrid search,混合搜素是我给自己选择的下一个学习的方向。
启发我的是在一个类似于万能的网站(别私信我,问是什么),我发现他们提供的信息可分析的内容非常的丰富,除了文字,声音,图像以及视频都可以混合的进行数据分析,且进行结果的搜索。这里我意识到一个问题,后续的数据库产品必须具备混合搜索的能力,也就是数据多种多样,搜索无所畏惧。
我们要抛弃掉什么二位表格,数据量大,以及数据形式的多种多样的限制,数据库存的是数据而不是规则和限制的时代到来了。那么为什么要混合搜素,首先我们要明确几点,
1 向量搜索不可控
2 关键词搜索会错过语义的问题,比如吃饱了和撑着了明显者是两个词,但意思是一个,所以数据库搜索应该可以接受两个不一样的词但表达同一个意思的方式来查询。
3 图像声音视频等,还在用关键字查询的方式应该被淘汰了
那么什么是hybrid search ,hybrid search = 向量检索 + 关键词过滤,一个混合搜索的场景包含了
1 使用向量模型进行语义理解,对内容进行初步查筛
2 对初步的内容进行关键词,结构化过滤
3 精确查询,且对数据进行融合排序
具体的工作原理可以总结为;
在进行分析的过程中,查找了一些开源数据库产品,这里有PostgreSQL, MySQL,MongoDB等,这些开源数据库产品中对于hybrid支持最好的是PostgreSQL,处于中间水平的事MongoDB,而最差的事MySQL.
我们这里简略的说一下
1 PostgreSQL支持hybrid查询,需要加载vector的extension.
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE documents (
id serial PRIMARY KEY,
content text,
content_tsv tsvector GENERATED ALWAYS AS (to_tsvector('english', content)) STORED,
embedding vector(384) -- 假设用 OpenAI 的 ada-002,384维
);
CREATE INDEX ON documents USING GIN(content_tsv); -- 全文索引
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops); -- 向量近似搜索
-- 向量搜索结果
WITH vector_results AS (
SELECT id, 1 (1 + embedding <#> '[...]'::vector) AS score
FROM documents
ORDER BY embedding <#> '[...]'::vector
LIMIT 10
),
-- 全文搜索结果
text_results AS (
SELECT id, ts_rank(content_tsv, plainto_tsquery('postgresql')) AS score
FROM documents
WHERE content_tsv @@ plainto_tsquery('postgresql')
ORDER BY score DESC
LIMIT 10
),
-- 合并并重排序
combined AS (
SELECT id, score, 'vector' AS source FROM vector_results
UNION ALL
SELECT id, score, 'text' AS source FROM text_results
)
SELECT id, SUM(score) AS hybrid_score
FROM combined
GROUP BY id
ORDER BY hybrid_score DESC
LIMIT 10;
而MongoDB可以通过Atlas search + 向量索引的方式解决,如
{
"_id": 1,
"title": "PostgreSQL Hybrid Table",
"content": "Hybrid tables connect PostgreSQL with external systems.",
"embedding": [0.123, 0.234, ..., 0.456]
}
{
"$search": {
"compound": {
"should": [
{
"text": {
"query": "postgresql hybrid",
"path": "content"
}
},
{
"knnBeta": {
"vector": [...],
"path": "embedding",
"k": 10
}
}
]
}
}
}
这里最差的是MySQL,目前只能通过全文索引的方式来进行,且还要借助外部的faiss 等工具来完成hybrid的工作,实属是太麻烦了。
所以后续将聚焦在PostgreSQL或MongoDB等数据库来研究hybrid搜索的方式方法。
用MySQL 分区表脑子有水!从实例,业务,开发角度分析 PolarDB 使用不会像MySQL那么Low
云数据库产品应改造PostgreSQL逻辑复制槽缺陷--来自真实企业的需求
泉城济南IvorySQL 2025 “雷暴云” 就在云和云原生会场
SQL SERVER 2025发布了, China幸亏有信创!
MongoDB 麻烦专业点,不懂可以问,别这么用行吗 ! --TTL
PostgreSQL 新版本就一定好--由培训现象让我做的实验
删除数据“八扇屏” 之 锦门英豪 --我去-BigData!
写了3750万字的我,在2000字的OB白皮书上了一课--记 《OceanBase 社区版在泛互场景的应用案例研究》
疯狂老DBA 和 年轻“网红” 程序员 --火星撞地球-- 谁也不是怂货
和架构师沟通那种“一坨”的系统,推荐只能是OceanBase,Why ?
跟我学OceanBase4.0 --阅读白皮书 (OB分布式优化哪里了提高了速度)
跟我学OceanBase4.0 --阅读白皮书 (4.0优化的核心点是什么)
跟我学OceanBase4.0 --阅读白皮书 (0.5-4.0的架构与之前架构特点)
跟我学OceanBase4.0 --阅读白皮书 (旧的概念害死人呀,更新知识和理念)
MongoDB 相关文章
MongoDB “升级项目” 大型连续剧(4)-- 与开发和架构沟通与扫尾
MongoDB “升级项目” 大型连续剧(3)-- 自动校对代码与注意事项
MongoDB “升级项目” 大型连续剧(2)-- 到底谁是"der"
MongoDB “升级项目” 大型连续剧(1)-- 可“生”可不升
MongoDB 大俗大雅,上来问分片真三俗 -- 4 分什么分
MongoDB 大俗大雅,高端知识讲“庸俗” --3 奇葩数据更新方法
MongoDB 大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用
MongoDB 大俗大雅,高端的知识讲“低俗” -- 1 什么叫多模
MongoDB 合作考试报销活动 贴附属,MongoDB基础知识速通
MongoDB 使用网上妙招,直接DOWN机---清理表碎片导致的灾祸 (送书活动结束)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
POLARDB 添加字段 “卡” 住---这锅Polar不背
PolarDB 版本差异分析--外人不知道的秘密(谁是绵羊,谁是怪兽)
PolarDB 答题拿-- 飞刀总的书、同款卫衣、T恤,来自杭州的Package(活动结束了)
PolarDB for MySQL 三大核心之一POLARFS 今天扒开它--- 嘛是火
PostgreSQL 无服务 Neon and Aurora 新技术下的新经济模式 (翻译)
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
全世界都在“搞” PostgreSQL ,从Oracle 得到一个“馊主意”开始
PostgreSQL 加索引系统OOM 怨我了--- 不怨你怨谁
PostgreSQL “我怎么就连个数据库都不会建?” --- 你还真不会!
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
PostgreSQL 分组查询可以不进行全表扫描吗?速度提高上千倍?
POSTGRESQL --Austindatabaes 历年文章整理
PostgreSQL 查询语句开发写不好是必然,不是PG的锅
MySQL相关文章





