Infinity数据库快速入门指南

Infinity数据库快速入门指南

infinity infinity 项目地址: https://gitcode.com/gh_mirrors/inf/infinity

前言

Infinity是一款高性能的向量数据库,专为处理大规模向量搜索和分析任务而设计。本文将带领开发者快速上手Infinity数据库,包括环境准备、部署方式以及基本操作。

环境准备

在开始使用Infinity之前,请确保您的系统满足以下要求:

  1. 硬件要求

    • CPU需要支持x86_64架构和AVX2指令集
    • 建议内存不少于8GB(具体取决于数据规模)
  2. 操作系统

    • Linux系统(需glibc 2.17及以上版本)
    • Windows 10+(需配合WSL/WSL2使用)
    • MacOS(x86_64架构)
  3. 软件依赖

    • Python 3.10或更高版本
    • Docker(如需使用容器化部署)

Docker部署Infinity

服务端部署

Linux/MacOS系统
# 创建数据存储目录并设置权限
sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity

# 拉取最新镜像
docker pull infiniflow/infinity:nightly

# 启动容器
docker run -d --name infinity \
  -v /var/infinity/:/var/infinity \
  --ulimit nofile=500000:500000 \
  --network=host \
  infiniflow/infinity:nightly
Windows系统

Windows用户需要通过WSL2环境运行:

  1. 启用WSL2并安装Ubuntu发行版
  2. 在WSL2中启用systemd支持
  3. 安装docker-ce
  4. 在Docker Desktop设置中启用主机网络功能
  5. 执行与Linux相同的启动命令

客户端安装

安装Python SDK:

pip install infinity-sdk==0.6.0.dev3

基础操作示例

连接数据库

import infinity

# 连接到Infinity服务器
infinity_obj = infinity.connect(infinity.NetworkAddress("<SERVER_IP_ADDRESS>", 23817))

创建数据库和表

# 获取默认数据库
db_object = infinity_object.get_database("default_db")

# 创建包含多种字段类型的表
table_object = db_object.create_table(
    "my_table", 
    {
        "num": {"type": "integer"}, 
        "body": {"type": "varchar"}, 
        "vec": {"type": "vector, 4, float"}
    }
)

数据插入

# 单条数据插入
table_object.insert([
    {
        "num": 1, 
        "body": "示例文本", 
        "vec": [1.0, 1.2, 0.8, 0.9]
    }
])

# 批量插入
table_object.insert([
    {"num": 2, "body": "测试数据", "vec": [4.0, 4.2, 4.3, 4.5]},
    {"num": 3, "body": "另一个示例", "vec": [2.1, 2.3, 2.0, 2.5]}
])

向量搜索

# 执行近似最近邻搜索
res = (table_object
      .output(["*"])  # 返回所有字段
      .match_dense(
          "vec",             # 向量字段名
          [3.0, 2.8, 2.7, 3.1],  # 查询向量
          "float",           # 向量数据类型
          "ip",              # 使用内积相似度
          2                  # 返回top 2结果
      )
      .to_pl())  # 转换为Polars DataFrame

print(res)

进阶功能

Infinity还支持以下高级功能:

  1. 混合搜索:结合向量搜索和全文检索
  2. 数据导入导出:支持从文件批量导入数据
  3. 数据更新删除:灵活的数据管理操作
  4. 多种相似度计算:支持内积(ip)、余弦(cosine)、欧式距离(l2)等

性能优化建议

  1. 对于生产环境,建议调整--ulimit nofile参数以支持更高并发
  2. 向量维度应根据实际应用场景合理设置
  3. 批量插入数据时,建议一次插入多条记录而非单条插入
  4. 搜索时合理设置top K值,避免不必要的数据传输

常见问题

  1. 连接问题:确保服务器IP和端口(23817)正确且防火墙已放行
  2. 性能问题:检查CPU是否支持AVX2指令集
  3. 存储问题:确保挂载目录有足够空间和正确权限

通过本指南,您应该已经掌握了Infinity的基本使用方法。如需更详细的功能说明和API参考,请查阅官方文档。

infinity infinity 项目地址: https://gitcode.com/gh_mirrors/inf/infinity

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴岩均Valley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值