This topic describes the data types of DashVector.
Doc
@dataclass(frozen=True)
class Doc(object):
id: str # The primary key.
vector: Union[List[int], List[float], np.ndarray] # The vector.
sparse_vector: Optional[Dict[int, float]] = None # The sparse vector.
fields: Optional[FieldDataType] = None # The custom fields in the document.
score: float = 0.0 # The similarity between vectors.
@Data
@Builder
public class Doc {
// The primary key.
@NonNull private String id;
// The vector.
@NonNull private Vector vector;
// The sparse vector.
private TreeMap<Integer, Float> sparseVector;
// The custom fields in the document.
@Builder.Default private Map<String, Object> fields = new HashMap<>();
// The similarity between vectors.
private float score;
public void addField(String key, String value) {
this.fields.put(key, value);
}
public void addField(String key, Integer value) {
this.fields.put(key, value);
}
public void addField(String key, Float value) {
this.fields.put(key, value);
}
public void addField(String key, Boolean value) {
this.fields.put(key, value);
}
}
CollectionMeta
@dataclass(frozen=True)
class CollectionMeta(object):
name: str # The name of the collection.
dimension: int # The number of vector dimensions.
dtype: str # The data type of the vector. Valid values: float and int.
metric: str # The distance metric. Valid values: euclidean, dotproduct, and cosine.
status: Status # The status of the collection.
fields: Dict[str, str] # The fields in the collection. Supported data types of fields: float, bool, int, and str.
partitions: Dict[str, Status] # The information about the partitions in the collection.
@Getter
public class CollectionMeta {
// The name of the collection.
private final String name;
// The number of vector dimensions.
private final int dimension;
// The data type of the vector. Valid values: float and int.
private final CollectionInfo.DataType dataType;
// The distance metric. Valid values: euclidean, dotproduct, and cosine.
private final CollectionInfo.Metric metric;
// The status of the collection.
private final String status;
// The fields in the collection. Supported data types of fields: float, bool, int, and str.
private final Map<String, FieldType> fieldsSchema;
// The information about the partitions in the collection.
private final Map<String, Status> partitionStatus;
public CollectionMeta(CollectionInfo collectionInfo) {
this.name = collectionInfo.getName();
this.dimension = collectionInfo.getDimension();
this.dataType = collectionInfo.getDtype();
this.metric = collectionInfo.getMetric();
this.status = collectionInfo.getStatus().name();
this.fieldsSchema = collectionInfo.getFieldsSchemaMap();
this.partitionStatus = collectionInfo.getPartitionsMap();
}
}
CollectionStats
@dataclass(frozen=True)
class CollectionStats(object):
total_doc_count: int # The total number of documents inserted into the collection.
index_completeness: float # The completeness of data insertion into the collection.
partitions: Dict[str, PartitionStats] # The information about the partitions in the collection.
@Getter
public class CollectionStats {
// The total number of documents inserted into the collection.
private final long totalDocCount;
// The completeness of data insertion into the collection.
private final float indexCompleteness;
// The information about the partitions in the collection.
private final Map<String, PartitionStats> partitions;
public CollectionStats(StatsCollectionResponse.CollectionStats collectionStats) {
this.totalDocCount = collectionStats.getTotalDocCount();
this.indexCompleteness = collectionStats.getIndexCompleteness();
this.partitions = new HashMap<>();
collectionStats
.getPartitionsMap()
.forEach((key, value) -> this.partitions.put(key, new PartitionStats(value)));
}
}
PartitionStats
@dataclass(frozen=True)
class PartitionStats(object):
total_doc_count: int # The total number of documents in the partition.
@Getter
public class PartitionStats {
// The total number of documents in the partition.
private final long totalDocCount;
public PartitionStats(com.aliyun.dashvector.proto.PartitionStats partitionStats) {
this.totalDocCount = partitionStats.getTotalDocCount();
}
}
Status
class Status(IntEnum):
INITIALIZED = 0 # The collection or partition is being created.
SERVING = 1 # The collection or partition is in service.
DROPPING = 2 # The collection or partition is being deleted.
ERROR = 3 # The collection or partition is abnormal.
Others
FieldDataType = Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]