DashVector は、ドキュメント、コレクション、およびそれらの状態を表すために、以下のデータ型を使用します。このページでは、各型について Python と Java 両方の定義を説明します。
Doc
Doc は DashVector コレクション内の単一のレコードです。ベクターと ID、およびオプションのメタデータをペアにします。
{
"id": "doc-001",
"vector": [0.1, 0.2, 0.3, 0.4],
"sparse_vector": {"10": 0.5, "25": 0.8},
"fields": {"category": "article", "year": 2024},
"score": 0.95
}
Python
@dataclass(frozen=True)
class Doc(object):
id: str # プライマリキー。
vector: Union[List[int], List[float], np.ndarray] # ベクター。
sparse_vector: Optional[Dict[int, float]] = None # 疎ベクトル。
fields: Optional[FieldDataDict] = None # ドキュメント内のカスタムフィールド。
score: float = 0.0 # ベクター間の類似性。
Java
@Data
@Builder
public class Doc {
// プライマリキー。
@NonNull private String id;
// ベクター。
@NonNull private Vector vector;
// 疎ベクトル。
private TreeMap<Integer, Float> sparseVector;
// ドキュメント内のカスタムフィールド。
@Builder.Default private Map<String, Object> fields = new HashMap<>();
// ベクター間の類似性。
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);
}
}
フィールドリファレンス
| フィールド | 型 (Python) | 型 (Java) | 説明 |
|---|
id | str | String | ドキュメントを一意に識別するプライマリキー。 |
vector | Union[List[int], List[float], np.ndarray] | Vector | 密ベクトル。 |
sparse_vector | Optional[Dict[int, float]] | TreeMap<Integer, Float> | 疎ベクトル。 |
fields | Optional[FieldDataDict] | Map<String, Object> | メタデータフィルタリング用のカスタムのキーと値のペア。 |
score | float (デフォルト: 0.0) | float | ベクター間の類似性。 |
サポートされているフィールドデータ型
| 型 | Python | Java |
|---|
| String | str | String |
| Integer | int | Integer |
| Float | float | Float |
| Boolean | bool | Boolean |
CollectionMeta
CollectionMeta は、コレクションの構成 (名前、ベクターのディメンション、距離メトリック、フィールドスキーマ、パーティションレイアウト) を記述します。
Python
@dataclass(frozen=True)
class CollectionMeta(object):
name: str # コレクションの名前。
dimension: int # ベクターのディメンション数。
dtype: str # ベクターのデータ型。有効な値: float および int。
metric: str # 距離メトリック。有効な値: euclidean、dotproduct、cosine。
status: Status # コレクションのステータス。
fields: Dict[str, str] # コレクション内のフィールド。サポートされているフィールドのデータ型: float、bool、int、str。
partitions: Dict[str, Status] # コレクション内のパーティションに関する情報。
Java
@Getter
public class CollectionMeta {
// コレクションの名前。
private final String name;
// ベクターのディメンション数。
private final int dimension;
// ベクターのデータ型。有効な値: float および int。
private final CollectionInfo.DataType dataType;
// 距離メトリック。有効な値: euclidean、dotproduct、cosine。
private final CollectionInfo.Metric metric;
// コレクションのステータス。
private final String status;
// コレクション内のフィールド。サポートされているフィールドのデータ型: float、bool、int、str。
private final Map<String, FieldType> fieldsSchema;
// コレクション内のパーティションに関する情報。
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();
}
}
フィールドリファレンス
| フィールド | 型 (Python) | 型 (Java) | 説明 |
|---|
name | str | String | コレクションの名前。 |
dimension | int | int | ベクターのディメンション数。 |
dtype | str | CollectionInfo.DataType | コレクション内のベクターのデータ型。有効な値: float、int。 |
metric | str | CollectionInfo.Metric | 類似検索のための距離メトリック。有効な値: euclidean、dotproduct、cosine。 |
status | Status | String | コレクションの現在のステータス。「Status」をご参照ください。 |
fields | Dict[str, str] | Map<String, FieldType> | コレクションに定義されたカスタムフィールドのスキーマ。サポートされているデータ型: float、bool、int、str。 |
partitions | Dict[str, Status] | Map<String, Status> | パーティション名とその現在のステータスのマッピング。 |
距離メトリック
| メトリック | API 値 |
|---|
| ユークリッド距離 | euclidean |
| ドット積 | dotproduct |
| コサイン類似度 | cosine |
CollectionStats
CollectionStats は、コレクションのドキュメント数とインデックス構築の進捗をレポートします。
Python
@dataclass(frozen=True)
class CollectionStats(object):
total_doc_count: int # コレクションに挿入されたドキュメントの総数。
index_completeness: float # コレクションへのデータ挿入の完全性。
partitions: Dict[str, PartitionStats] # コレクション内のパーティションに関する情報。
Java
@Getter
public class CollectionStats {
// コレクションに挿入されたドキュメントの総数。
private final long totalDocCount;
// コレクションへのデータ挿入の完全性。
private final float indexCompleteness;
// コレクション内のパーティションに関する情報。
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)));
}
}
フィールドリファレンス
| フィールド | 型 (Python) | 型 (Java) | 説明 |
|---|
total_doc_count | int | long | コレクションに挿入されたドキュメントの総数。 |
index_completeness | float | float | コレクションへのデータ挿入の完全性。 |
partitions | Dict[str, PartitionStats] | Map<String, PartitionStats> | パーティション名とその統計のマッピング。「PartitionStats」をご参照ください。 |
PartitionStats
PartitionStats は、コレクション内の単一パーティションのドキュメント数をレポートします。
Python
@dataclass(frozen=True)
class PartitionStats(object):
total_doc_count: int # パーティション内のドキュメントの総数。
Java
@Getter
public class PartitionStats {
// パーティション内のドキュメントの総数。
private final long totalDocCount;
public PartitionStats(com.aliyun.dashvector.proto.PartitionStats partitionStats) {
this.totalDocCount = partitionStats.getTotalDocCount();
}
}
フィールドリファレンス
| フィールド | 型 (Python) | 型 (Java) | 説明 |
|---|
total_doc_count | int | long | パーティション内のドキュメントの総数。 |
Status
The Status enum は、コレクションまたはパーティションのライフサイクルステータスを定義します。
class Status(IntEnum):
INITIALIZED = 0 # コレクションまたはパーティションは作成中です。
SERVING = 1 # コレクションまたはパーティションはサービス中です。
DROPPING = 2 # コレクションまたはパーティションは削除中です。
ERROR = 3 # コレクションまたはパーティションは異常です。
| 値 | 整数 | 説明 |
|---|
INITIALIZED | 0 | コレクションまたはパーティションは作成中です。 |
SERVING | 1 | コレクションまたはパーティションはサービス中です。 |
DROPPING | 2 | コレクションまたはパーティションは削除中です。 |
ERROR | 3 | コレクションまたはパーティションでエラーが発生しました。 |
型エイリアス (Python)
Python SDK は、以下の型エイリアスを定義します。
long = NewType("long", int)
FieldDataType = Union[long, str, int, float, bool]
FieldDataDict = Dict[str, FieldDataType]
VectorValueType = Union[List[int], List[float], np.ndarray]
| エイリアス | 定義 | 説明 |
|---|
long | NewType("long", int) | 拡張整数型。 |
FieldDataType | Union[long, str, int, float, bool] | ドキュメントのカスタムフィールドで受け入れられる値の型。 |
FieldDataDict | Dict[str, FieldDataType] | fields の Doc パラメーターの型。 |
VectorValueType | Union[List[int], List[float], np.ndarray] | ベクター パラメーターで許容される型は、Doc で指定されます。 |