Skip to content

Commit 6753e24

Browse files
ricken07tzolov
authored andcommitted
Fixing metadata for text splitting
1 parent 2129547 commit 6753e24

File tree

1 file changed

+5
-4
lines changed
  • spring-ai-core/src/main/java/org/springframework/ai/transformer/splitter

1 file changed

+5
-4
lines changed

spring-ai-core/src/main/java/org/springframework/ai/transformer/splitter/TextSplitter.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,27 @@ public boolean isCopyContentFormatter() {
5353

5454
private List<Document> doSplitDocuments(List<Document> documents) {
5555
List<String> texts = new ArrayList<>();
56-
Map<String, Object> metadata = new HashMap<>();
56+
List<Map<String, Object>> metadataList = new ArrayList<>();
5757
List<ContentFormatter> formatters = new ArrayList<>();
5858

5959
for (Document doc : documents) {
6060
texts.add(doc.getContent());
61-
metadata.putAll(doc.getMetadata());
61+
metadataList.add(doc.getMetadata());
6262
formatters.add(doc.getContentFormatter());
6363
}
6464

65-
return createDocuments(texts, formatters, metadata);
65+
return createDocuments(texts, formatters, metadataList);
6666
}
6767

6868
private List<Document> createDocuments(List<String> texts, List<ContentFormatter> formatters,
69-
Map<String, Object> metadata) {
69+
List<Map<String, Object>> metadataList) {
7070

7171
// Process the data in a column oriented way and recreate the Document
7272
List<Document> documents = new ArrayList<>();
7373

7474
for (int i = 0; i < texts.size(); i++) {
7575
String text = texts.get(i);
76+
Map<String, Object> metadata = metadataList.get(i);
7677
List<String> chunks = splitText(text);
7778
if (chunks.size() > 1) {
7879
logger.info("Splitting up document into " + chunks.size() + " chunks.");

0 commit comments

Comments
 (0)