简介
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"