diff --git a/agentscope-extensions/agentscope-extensions-rag-simple/src/main/java/io/agentscope/core/rag/store/ElasticsearchStore.java b/agentscope-extensions/agentscope-extensions-rag-simple/src/main/java/io/agentscope/core/rag/store/ElasticsearchStore.java index 897710baf..afc8fee2e 100644 --- a/agentscope-extensions/agentscope-extensions-rag-simple/src/main/java/io/agentscope/core/rag/store/ElasticsearchStore.java +++ b/agentscope-extensions/agentscope-extensions-rag-simple/src/main/java/io/agentscope/core/rag/store/ElasticsearchStore.java @@ -93,6 +93,7 @@ public class ElasticsearchStore implements VDBStoreBase, AutoCloseable { private static final String FIELD_DOC_ID = "doc_id"; private static final String FIELD_CHUNK_ID = "chunk_id"; private static final String FIELD_CONTENT = "content"; + private static final String FIELD_PAYLOAD = "payload"; private final String indexName; private final int dimensions; @@ -404,6 +405,10 @@ private Map mapToEsDocument(Document doc) { DocumentMetadata meta = doc.getMetadata(); map.put(FIELD_DOC_ID, meta.getDocId()); map.put(FIELD_CHUNK_ID, meta.getChunkId()); + Map customPayload = meta.getPayload(); + if (customPayload != null && !customPayload.isEmpty()) { + map.put(FIELD_PAYLOAD, meta.getPayload()); + } // Serialize ContentBlock to JSON string to ensure safe storage/retrieval try { diff --git a/agentscope-extensions/agentscope-extensions-rag-simple/src/test/java/io/agentscope/core/rag/store/ElasticsearchStoreTest.java b/agentscope-extensions/agentscope-extensions-rag-simple/src/test/java/io/agentscope/core/rag/store/ElasticsearchStoreTest.java index f95c17eb6..e083c34ab 100644 --- a/agentscope-extensions/agentscope-extensions-rag-simple/src/test/java/io/agentscope/core/rag/store/ElasticsearchStoreTest.java +++ b/agentscope-extensions/agentscope-extensions-rag-simple/src/test/java/io/agentscope/core/rag/store/ElasticsearchStoreTest.java @@ -376,6 +376,20 @@ void testAddDimensionMismatch() throws VectorStoreException { .verify(); } + @Test + @DisplayName("Should add documents with payload") + void testAddPayload() throws VectorStoreException { + store = createMockStoreForAdd(true); + + TextBlock content = TextBlock.builder().text("Test content").build(); + DocumentMetadata metadata = + new DocumentMetadata(content, "doc-1", "chunk-1", Map.of("k", "v")); + Document doc = new Document(metadata); + doc.setEmbedding(new double[TEST_DIMENSIONS]); + + StepVerifier.create(store.add(List.of(doc))).verifyComplete(); + } + // ==================== Search Method Tests ==================== @SuppressWarnings("unchecked")