向量数据库之Lancedb学习记录

简介

Lancedb是一个用于人工智能的开源矢量数据库,旨在存储、管理、查询和检索大规模多模式数据的嵌入。Lancedb的核心是用Rust编写的,并构建在Lance之上,专为高性能 ML 工作负载和快速随机访问而设计。

快速开始

安装

pip install lancedb

目前0.6.8需要pyarrow-12.0.0及以上,亲测15.0会报错。

创建客户端

import lancedb
import pandas as pd
import pyarrow as pa

uri = "data/sample-lancedb"
db = lancedb.connect(uri)   
# 异步客户端
#async_db = await lancedb.connect_async(uri)    

与Chroma不同,lancedb没有服务端-客户端模式。支持同步和异步客户端,看起来异步客户端更新较快,从官方文档来看没发现使用上的区别。

创建一张表

data = [
    {
   "vector": [3.1, 4.1], "item": "foo", "price": 10.0},
    {
   "vector": [5.9, 26.5], "item": "bar", "price": 20.0},
]

tbl = db.create_table("my_table", data=data) 

如果表名已经存在,则会报错。如果希望覆盖已经创建的同名表,可以添加mode='overwrite’参数。

tbl = db.create_table("my_table", data=data, mode='overwrite') 

如果不希望覆盖已经创建的同名表,而直接打开的话,可以添加exist_ok=True参数。

tbl = db.create_table("my_table", data=data, exist_ok=True) 

创建一张空表

schema = pa.schema([pa.field("vector", pa.list_(pa.float32(), list_size=2))])
tbl = db.create_table("empty_table", schema=schema)

类似SQL语法,先创建一张空表,插入数据可以放到后面进行。

添加数据

# 直接添加数据
data = [
    {
   "vector"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值