in tablestore-java-mcp-server/src/main/java/com/alicloud/openservices/tablestore/sample/service/TablestoreService.java [257:295]
private void add(String id, Entry entry) {
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn(this.pkName, PrimaryKeyValue.fromString(id));
PrimaryKey primaryKey = primaryKeyBuilder.build();
RowPutChange rowPutChange = new RowPutChange(this.tableName, primaryKey);
float[] embed = embeddingService.embed(entry.getContent());
String embeddingString = embeddingToString(embed);
rowPutChange.addColumn(new Column(this.embeddingField, ColumnValue.fromString(embeddingString)));
String text = entry.getContent();
if (text != null) {
rowPutChange.addColumn(new Column(this.textField, ColumnValue.fromString(text)));
}
Map<String, Object> map = entry.getMetaData();
if (map != null) {
for (Map.Entry<String, Object> e : map.entrySet()) {
String key = e.getKey();
Object value = e.getValue();
if (this.textField.equals(key)) {
throw new IllegalArgumentException(String.format("there is a metadata(%s,%s) that is consistent with the name of the text field:%s", key, value, this.textField));
}
if (this.embeddingField.equals(key)) {
throw new IllegalArgumentException(String.format("there is a metadata(%s,%s) that is consistent with the name of the vector field:%s", key, value, this.embeddingField));
}
if (value instanceof Float) {
rowPutChange.addColumn(new Column(key, ColumnValue.fromDouble((Float) value)));
} else if (value instanceof UUID) {
rowPutChange.addColumn(new Column(key, ColumnValue.fromString(((UUID) value).toString())));
} else {
rowPutChange.addColumn(new Column(key, ValueUtil.toColumnValue(value)));
}
}
}
try {
log.info("store entry id:{}, content:{}, metaData:{}, embedding:{}", id, entry.getContent(), entry.getMetaData(), maxLogOrNull(embeddingString));
client.putRow(new PutRowRequest(rowPutChange));
} catch (Exception e) {
throw new RuntimeException(String.format("store entry failed, id:%s, content:%s, metaData:%s, embedding:%s", id, entry.getContent(), entry.getMetaData(), maxLogOrNull(embeddingString)), e);
}
}