in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/knowledge/KnowledgeStoreImpl.java [121:148]
public void updateDocument(Document document) {
ValidationUtils.ensureNotNull(document, "document");
ValidationUtils.ensureNotNull(document.getDocumentId(), "documentId");
checkDimension(document);
checkEnableMultiTenant(document);
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn(Document.DOCUMENT_DOCUMENT_ID, PrimaryKeyValue.fromString(document.getDocumentId()));
primaryKeyBuilder.addPrimaryKeyColumn(Document.DOCUMENT_TENANT_ID, PrimaryKeyValue.fromString(document.getTenantId()));
PrimaryKey primaryKey = primaryKeyBuilder.build();
RowUpdateChange change = new RowUpdateChange(tableName, primaryKey);
List<Column> columns = TablestoreHelper.metadataToColumns(document.getMetadata());
if (document.getText() != null) {
columns.add(new Column(textField, ColumnValue.fromString(document.getText())));
}
if (document.getEmbedding() != null) {
columns.add(new Column(embeddingField, ColumnValue.fromString(TablestoreHelper.encodeEmbedding(document.getEmbedding()))));
}
change.put(columns);
try {
client.updateRow(new UpdateRowRequest(change));
if (log.isDebugEnabled()) {
log.debug("update document:{}", document);
}
} catch (Exception e) {
throw Exceptions.runtimeThrowable(String.format("update document:%s failed", document), e);
}
}