VectoRex VectoRex
首页
  • 介绍
  • 嵌入

    • Spring嵌入使用
    • Solon嵌入使用
  • 服务端

    • 部署Server
    • API文档
  • 客户端

    • Java SDK
    • Golang SDK
    • Python SDK
  • 须知

    • 度量类型
    • 应用场景
    • 注解详解
快速开始
Source (opens new window)
首页
  • 介绍
  • 嵌入

    • Spring嵌入使用
    • Solon嵌入使用
  • 服务端

    • 部署Server
    • API文档
  • 客户端

    • Java SDK
    • Golang SDK
    • Python SDK
  • 须知

    • 度量类型
    • 应用场景
    • 注解详解
快速开始
Source (opens new window)
  • 介绍

    • 项目简介
  • 指南

    • 度量类型
    • 应用场景
    • 注解详解
      • 注解列表
        • 1. @VectoRexCollection
        • 使用方法:
        • 参数:
        • 示例:
        • 2. @VectoRexField
        • 使用方法:
        • 参数:
        • 示例:
      • 数据类型 (DataType)
      • 度量类型 (MetricType)
      • 完整示例
  • 嵌入

    • spring内嵌使用
    • solon内嵌使用
  • 服务端

    • 独立部署服务
    • API文档
  • 客户端

    • java sdk
    • go sdk
    • python sdk
目录

注解详解

# VectoRex 注解说明

本文档详细介绍了 VectoRex 项目中用于定义集合和字段的自定义注解。通过这些注解,您可以轻松地将 Java 类映射到向量数据库中的集合和字段。


# 注解列表

# 1. @VectoRexCollection

该注解用于将一个类标记为 VectoRex 系统中的集合。您可以通过它指定集合的名称。

# 使用方法:

@VectoRexCollection(name = "my_collection")
public class MyCollection {
    // 类的字段和方法
}

# 参数:

  • name: 集合的名称。这是一个必填字段,且在系统中必须唯一。

# 示例:

@VectoRexCollection(name = "image_vectors")
public class ImageVectorCollection {
    // 图像向量数据的字段和方法
}

# 2. @VectoRexField

该注解用于定义集合中的字段。您可以通过它指定字段的名称、数据类型、向量维度、度量类型以及是否为主键。

# 使用方法:

@VectoRexField(
    name = "vector_field",
    dataType = DataType.FLOAT_VECTOR,
    dimension = 128,
    metricType = MetricType.FLOAT_COSINE_DISTANCE,
    isPrimaryKey = false
)
private float[] vectorField;

# 参数:

  • name: 字段的名称。如果未提供,则默认使用 Java 字段名。

  • dataType: 字段的数据类型。默认为 DataType.Scalar。支持的取值包括:

    • DataType.Scalar(标量类型,如整数、字符串)
    • DataType.FLOAT_VECTOR(浮点向量)
  • dimension: 向量的维度(仅对向量类型有效)。默认为 -1(未指定)。

  • metricType: 用于向量相似度计算的度量类型。默认为 MetricType.FLOAT_COSINE_DISTANCE。支持的取值包括:

    • MetricType.FLOAT_COSINE_DISTANCE(浮点向量的余弦距离)
    • MetricType.FLOAT_EUCLIDEAN_DISTANCE(浮点向量的欧几里得距离)
    • MetricType.BINARY_HAMMING_DISTANCE(二进制向量的汉明距离)
  • isPrimaryKey: 指示该字段是否为主键。默认为 false。

# 示例:

@VectoRexCollection(name = "product_vectors")
public class ProductVectorCollection {

    @VectoRexField(isPrimaryKey = true)
    private String productId;

    @VectoRexField(
        name = "embedding",
        dataType = DataType.FLOAT_VECTOR,
        dimension = 256,
        metricType = MetricType.FLOAT_EUCLIDEAN_DISTANCE
    )
    private List<Float> embedding;

    @VectoRexField(name = "category")
    private String category;
}

# 数据类型 (DataType)

DataType 枚举定义了字段支持的数据类型:

  • Scalar: 标量值(如整数、字符串)。
  • FLOAT_VECTOR: 浮点向量。

# 度量类型 (MetricType)

MetricType 枚举定义了向量相似度计算支持的度量类型:

  • FLOAT_COSINE_DISTANCE: 浮点向量的余弦距离。
  • FLOAT_EUCLIDEAN_DISTANCE: 浮点向量的欧几里得距离。
  • BINARY_HAMMING_DISTANCE: 二进制向量的汉明距离。

# 完整示例

以下是一个完整的使用示例:

@VectoRexCollection(name = "user_profiles")
public class UserProfileCollection {

    @VectoRexField(isPrimaryKey = true)
    private String userId;

    @VectoRexField(name = "name")
    private String name;

    @VectoRexField(
        name = "preferences",
        dataType = DataType.FLOAT_VECTOR,
        dimension = 64,
        metricType = MetricType.FLOAT_COSINE_DISTANCE
    )
    private List<Float> preferences;
}

应用场景
spring内嵌使用

← 应用场景 spring内嵌使用→

Theme by Vdoing | Copyright © 2024-2025 xgc | Apache License
  • 跟随系统
  • 浅色模式
  • 阅读模式
  • 深色模式