lancedb create_scalar_index 创建索引
doc
https://lancedb.com/docs/indexing/scalar-index/
测试1
import lancedb# 1. 连接/创建本地 LanceDB(目录 "data/mydb")
db = lancedb.connect("data/mydb")# 2. 创建或打开一个表。例如:包含用户宽表(用户维度)
# 假设表名为 "users";首次使用时用 create_table 创建
data = [{"user_id": "u1", "category": "a", "is_active": True},{"user_id": "u2", "category": "b", "is_active": False},{"user_id": "u3", "category": "c", "is_active": True},
]# 创建表(如果尚不存在)
table = db.create_table("users", data=data, mode="overwrite")
table.create_scalar_index("category", index_type="BITMAP")
测试2
import lancedb# 1. 创建本地数据库目录
db = lancedb.connect("data/demo_label_list")# 2. 创建测试数据:每行有一个字符串数组列 tags
data = [{"item_id": 1, "tags": ["sports", "shoes", "nike"]},{"item_id": 2, "tags": ["electronics", "phone", "apple"]},{"item_id": 3, "tags": ["sports", "clothes", "adidas"]},
]# 3. 创建表(若存在则覆盖)
table = db.create_table("items", data=data, mode="overwrite")# 4. 创建 label_list 索引,专门用于数组字段
table.create_scalar_index("tags", index_type="LABEL_LIST")print("label_list 索引创建成功")# 5. 执行查询:找到包含“sports”的所有数据
df = table.search().where("array_contains(tags, 'sports')").to_pandas()print(df)

