ITPub博客

首页 > 数据库 > 国内数据库 > 把 seekdb 塞进 iOS App:让混合检索嵌入手机 - 企业级数据库实践

把 seekdb 塞进 iOS App:让混合检索嵌入手机 - 企业级数据库实践

原创 国内数据库 作者:OceanBase数据库 时间:2026-11-03 10:52:34 0 删除 编辑

Hold Infinity in the palm of your hand.

纳无穷于掌中。

—— 威廉·布莱克,《天真的预言》 [1]

seekdb [2] 终于能在 iOS 上跑了!

完整的 seekdb 内核引擎被打包成了  SeekDB.framework ,几行 Swift 代码就能打开一个数据库。全文检索、向量检索、混合搜索、FORK TABLE,seekdb 的全部功能在 iOS App 里都能用啦~

seekdb 正式支持 iOS 生态

iOS 生态大、用户多,开发者活跃。 2026 年 1 月,Apple CEO Tim Cook 在财报会上说,全球正在使用的 iPhone、Mac 和其他 Apple 设备已经有 25 亿台。现在 seekdb 为内嵌模式提供了原生的 Swift 支持:

  • 在 Xcode 里添加 [ seekdb-swift]((https://github.com/oceanbase/seekdb-swift " seekdb-swift")) 这个 Swift package 就能用,SwiftPM 会自动下载引擎并校验 checksum,不用自己编译和集成 C++ 引擎。

  • package 不依赖第三方 Swift 库,SQL 用任意一个支持 MySQL 协议的 client 执行,比如纯 Swift 的  MySQLNIO。

seekdb 在 iOS 生态中的优势

  1. 和主流数据库比:MySQL 从 8.0 起去掉了内嵌版本  libmysqld,PostgreSQL 一直是 client/server 结构、没有官方的内嵌版本,它们都不能直接放进 iOS App;iOS 上常用的内嵌数据库 SQLite 不兼容 MySQL,向量检索也要另加扩展。

    seekdb 兼容 MySQL、又能内嵌进 iOS App 并自带向量检索。

  2. iOS App 需要的数据库功能,seekdb 都有。 在 AI 时代,移动端 App 不只要存数据、查数据,很多还要做 AI 功能,比如在本地按语义检索聊天记录和笔记、用一句话描述从相册里找出照片,或者给 App 里的 AI 助手接上本地知识库,让它回答问题时能查用户自己的数据。

    seekdb 把这些需要的能力都放进了同一个数据库内核:关系数据管理、向量检索、全文检索、半结构化与空间数据处理、数据库内 AI 调用,以及面向 Agent 的 Fork/Diff/Merge 数据工作流。

    它兼容 MySQL,支持 ACID, 一条 SQL 就能同时做向量检索、全文检索和条件过滤。

  3. 数据库内嵌在 App 里。 存数据和检索都不用经过服务端,应用的复杂度更低。聊天记录、笔记、embedding 都存在本地,检索也在本地做,数据不离开设备,安全性更好。

App 代码调用  seekdb_open 后,framework 会启动引擎线程。

之后 App 只通过 Unix socket 用 MySQL client 访问它,数据会写在 App sandbox 的目录里。

How to use ?

引入一个 Swift package,调一次  SeekDB.open,就能拿到连接用的 socket。

在 Xcode 里添加:

  1. 打开 App 的工程,选菜单  File > Add Package Dependencies…。

  2. 在弹出窗口右上角的搜索框里粘贴  https://github.com/oceanbase/seekdb-swift,等列表里出现  seekdb-swift。

  3. 在下一步的列表里,把  SeekDB 这个 product 的  Add to Target 选成你的 App target,再点  Add Package。

如果用  Package.swift 管理依赖,就在里面写:

.package(url: "https://github.com/oceanbase/seekdb-swift.git", from: "0.1.0")
// target 的 dependencies 里:
.product(name: "SeekDB", package: "seekdb-swift")

SwiftPM 解析依赖时会从 GitHub release 下载引擎,打开数据库只要几行:

import SeekDB
let db = try SeekDB.open("/absolute/path/to/database")
let options = try db.connectionOptions()
try db.close()

SQL 可以通过任意的 MySQL client 库来执行。我们的 seekdb-swift 仓库提供了一个用 Swift 开发的原生 iOS App demo,它用 seekdb 实现了一个 SeekDB Shell [3]:

更多信息,欢迎感兴趣的朋友们访问和阅读:seekdb 官方文档 [4]。

参考资料[1] 

《天真的预言》:  https://poets.org/poem/auguries-innocence


[2] 

seekdb:  https://github.com/oceanbase/seekdb


[3] 

SeekDB Shell:  https://github.com/oceanbase/seekdb-swift/tree/main/example


[4] 

seekdb 官方文档:  https://docs.seekdb.ai/


图片

立即试用 OceanBase 企业版,体验国产数据库能力 立即试用

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69909943/viewspace-3187425/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
欢迎来 OceanBase 开源官网技术切磋 https://open.oceanbase.com/answer

注册时间:2019-02-13

  • 博文量
    592
  • 访问量
    613221