我使用 Attu 客户端来管理 Milvus 的数据,所有数据在里面看起来都很好。
但是当我尝试使用 python 客户端查询相同的数据时,我得到的嵌入结果是 float8 格式而不是 float32 格式。
这是为什么呢?检索过程有限制或转换吗?
这是我正在运行的查询的片段:
self.milvusClient.query(
collection_name='someCollection',
output_fields=['embedding'],
filter='objectId in [' + ','.join(objectIdList) + ']',
limit=limit
)
这里还有嵌入字段的创建命令的片段:
schema.add_field(field_name="embedding", datatype=DataType.FLOAT_VECTOR, dim=512, is_primary=False, auto_id=False)
index_params.add_index(
field_name="embedding",
index_type="IVF_FLAT",
metric_type="L2",
params={
"nlist": 2048
}
)
存储值:-0.24403861165046692 检索到的值:-0.24403861
谢谢!
同样的讨论可能会回答以下问题:
简而言之:Float32 值的精度约为 7 位十进制数字。即使是 Float64 值,例如 1.3476964684980388,Milvus 也会将其存储为 1.347696。