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

LanceDB向量数据库

概述

       LanceDB是一个开源的向量数据库(https://github.com/lancedb/lancedb),旨在提供基于Embedding数据的存储、管理、查询和检索大规模多模态数据,适用于需要存储和检索具有复杂关系的数据集,支持多种数据类型,支持向量、全文、以及混合检索,可以构建复杂的关系图谱。

整体架构

  • 基于 Lance Columnar 格式,高效存储向量数据

  • 数据层-查询层分离架构,提升查询性能

  • 特殊的存储引擎设计,支持高效向量操作

  • 多级索引管理,平衡查询速度和精度

  • 智能内存-磁盘交互策略,优化资源利用

核心优势

  • 多模态支持:存储和搜索文本、图像、音频等多种数据类型的向量表示

  • 多方式部署:支持本地部署,同时提供云托管服务

  • 多索引支持:支持IVFPQ、HNSW等高效索引算法,适应不同场景

  • 混合检索:结合了向量相似度和传统过滤条件的混合查询能力

  • AI工作流集成:与LangChain、LlamaIndex等AI框架无缝集成

安装部署

本地部署

1、安装

pip install lancedb

2、使用示例:

import lancedb
import pandas as pddb = lancedb.connect("./lancedb"
)# 使用pandas创建一个二维数据集
# 为了简单演示数据库的检索功能,这里手动创建了vector向量,实际使用中需要使用Embedding模型进行处理
data = pd.DataFrame({"vector": [[1.1, 2.3],[4.5, 6.0]],"text": ["hello","world"]
})table = db.create_table("my_table",  # 创建表data
)query = [1.0, 2.0]results = table.search( # 相似度搜索query
).limit(1).to_list()  # 限制搜索结果个数为1,并将结果转为列表# 打印结果
print(results)

输出结果:

[{'vector': [1.100000023841858, 2.299999952316284], 'text': 'hello', '_distance': 0.09999997913837433}]

云部署

1、注册(https://lancedb.com/)

选择自己合适的方式进行注册:

按照以下步骤进行项目创建和获取API key

项目创建完成(如图中的URI,在连接数据库是需要通过uri=参数传入)

2、连接并使用数据库

import lancedb# 创建数据库连接
db = lancedb.connect(uri="db://default-ho2p88", # URI 是页面创建项目之后生成的api_key="你创建项目是生成的API",region="us-east-1"
)# 构建数据集
data = [{"vector": [3.1, 4.1], "item": "foo", "price": 10.0},{"vector": [5.9, 26.5], "item": "bar", "price": 20.0},
]
# 创建表my_table1并写入data数据
table_name = "my_table1"
tbl = db.create_table(table_name, data=data)# 后续查询操作和本地部署是一致的
query = [2.0, 4.0]results = tbl.search( # 相似度搜索query
).limit(1).to_list()  # 限制搜索结果个数为1# 打印结果
print(results)

运行结果:

[{'vector': [3.0999999046325684, 4.099999904632568], 'item': 'foo', 'price': 10.0, '_distance': 1.2199997901916504}]

云端可以查看写入的数据:


文章转载自:

http://bns7lru4.zxznh.cn
http://j1R9xlsj.zxznh.cn
http://8kg51cKD.zxznh.cn
http://gxDMQ6az.zxznh.cn
http://rVC8aN5G.zxznh.cn
http://3skKVPJC.zxznh.cn
http://efvVtqpS.zxznh.cn
http://QDJLDwKc.zxznh.cn
http://EO2EehUM.zxznh.cn
http://aXcR789s.zxznh.cn
http://K57YMLKt.zxznh.cn
http://lrTyuelF.zxznh.cn
http://LmOyJ94P.zxznh.cn
http://lFHKlR5p.zxznh.cn
http://mAk1h34l.zxznh.cn
http://6JiRdJg3.zxznh.cn
http://XcZ0nWCr.zxznh.cn
http://mIFRbEmc.zxznh.cn
http://QZndKZYj.zxznh.cn
http://yuorwgvT.zxznh.cn
http://ubRPQQjN.zxznh.cn
http://bWKp8EJt.zxznh.cn
http://ijMUr9gh.zxznh.cn
http://R1ez3niq.zxznh.cn
http://JHBYcUxc.zxznh.cn
http://8d6L7hJ5.zxznh.cn
http://RnGOK7s6.zxznh.cn
http://JJ7JZ8Vl.zxznh.cn
http://qoPewJRA.zxznh.cn
http://8oBOmvZT.zxznh.cn
http://www.dtcms.com/a/386623.html

相关文章:

  • RabbitMQ 异步化抗洪实战
  • 《Java集合框架核心解析》
  • 二维码生成器
  • OSI七层模型
  • 【原创·极简新视角剖析】【组局域网】设备在同一局域网的2个条件
  • 第8课:高级检索技术:HyDE与RAG-Fusion原理与DeepSeek实战
  • Windows 命令行:路径的概念,绝对路径
  • 异常检测在网络安全中的应用
  • 【ubuntu】ubuntu 22.04 虚拟机中扩容操作
  • 【数值分析】05-绪论-章节课后1-7习题及答案
  • Java NIO 核心机制与应用
  • Roo Code 诊断集成功能:智能识别与修复代码问题
  • ANA Pay不再接受海外信用卡储值 日eShop生路再断一条
  • 一阶惯性环节的迭代公式
  • AWS 热门服务(2025 年版)
  • 拷打字节算法面试官之-深入c语言递归算法
  • Vehiclehal的VehicleService.cpp
  • 【传奇开心果系列】基于Flet框架实现的允许调整大小的开关自定义组件customswitch示例模板特色和实现原理深度解析
  • 八股整理xdsm
  • SpringBoot 配置文件详解:从基础语法到实战应用
  • lesson62:JavaScript对象进化:ES2025新特性深度解析与实战指南
  • ARM C1-Premium core简介
  • 机器学习-深度神经网络架构
  • godot+c#实现玩家动画
  • 【Axure高保真原型】标签树分类查询案例
  • 系统架构设计(一)
  • RK3568下QT实简易文件浏览器
  • 设备综合效率(OEE)讲解与计算案例
  • STM32G4 电流环闭环(二) 霍尔有感运行
  • git-gui --批量处理文件