LanceDB - 向量数据库的基本使用方法
LanceDB - 向量数据库 安装 pip install lancedb 1 基础使用 1.1 创建客户端 1 2 3 4 5 import lancedb #创建客户端 url = "./data/sample-lancedb" db = lancedb.connect(url) 1.2 创建表 1 2 3 4 5 6 7 8 9 #1. 建表的同时添加数据 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' - 覆盖已经创建的同名表 #exist_ok=True - 不覆盖已经创建的同名表,直接打开 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #2. 创建一张空表 schema = pa.schema([pa.field("vector", pa.list_(pa.float32(), list_size=2))]) tbl = db.create_table("empty_table", schema=schema) # 直接添加数据 data = [ {"vector": [1.3, 1.4], "item": "fizz", "price": 100.0}, {"vector": [9.5, 56.2], "item": "buzz", "price": 200.0}, ] tbl.add(data) # 添加df数据帧 df = pd.DataFrame(data) tbl.add(data) 1.3 查找数据 1 2 3 4 5 6 # Synchronous client #通过向量来查找相似的向量 tbl.search([100, 100]).limit(2).to_pandas() """默认情况下没有对向量创建索引,因此是全表暴力检索。官方推荐数据量超过50万以上才需要创建索引,否则全表暴力检索的延迟也在可以接受的范围之内。""" 1.4 删除数据 1 2 #类似SQL语法中的WHERE声明,需要指定字段和对应的值 tbl.delete('item = "fizz"') 1.5 修改数据 1 2 #类似SQL语法中的UPDATE声明,需要指定字段和对应的值 table.update(where='item = "fizz"', values={"vector": [10, 10]}) 1.6 删除表 1 db.drop_table("my_table") 1.7 删除所有表 1 2 print(db.table_names()) tbl = db.open_table("my_table")