public void updateDocument()

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);
        }
    }