package com.xly.milvus.bean; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Map; /** * 相似度查询结果实体 - 增强版 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor public class SimilaritySearchResult { private Long id; // 整数ID private String strId; // 字符串ID private Float score; // 相似度得分 private Double normalizedScore; // 归一化后的得分(0-1之间) private Map fields; // 字段数据 private String collectionName; // 集合名称 /** * 获取ID(优先返回字符串ID,如果没有则返回整数ID) */ public String getId() { if (strId != null && !strId.isEmpty()) { return strId; } return id != null ? String.valueOf(id) : null; } /** * 获取字段值 */ public Object getField(String fieldName) { if (fields != null) { return fields.get(fieldName); } return null; } /** * 获取字符串字段值 */ public String getStringField(String fieldName) { Object value = getField(fieldName); return value != null ? value.toString() : null; } /** * 获取整数字段值 */ public Integer getIntField(String fieldName) { Object value = getField(fieldName); if (value instanceof Number) { return ((Number) value).intValue(); } return null; } }