Skip to content

Commit 8847f2c

Browse files
Reuse DocumentRowMapper instance to reduce redundant object creation
Signed-off-by: jonghoonpark <[email protected]>
1 parent aada198 commit 8847f2c

File tree

1 file changed

+4
-3
lines changed
  • vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/pgvector

1 file changed

+4
-3
lines changed

vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/pgvector/PgVectorStore.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,8 @@ public class PgVectorStore extends AbstractObservationVectorStore implements Ini
202202

203203
private final ObjectMapper objectMapper;
204204

205+
private final DocumentRowMapper documentRowMapper;
206+
205207
private final boolean removeExistingVectorStoreTable;
206208

207209
private final PgIndexType createIndexMethod;
@@ -219,6 +221,7 @@ protected PgVectorStore(PgVectorStoreBuilder builder) {
219221
Assert.notNull(builder.jdbcTemplate, "JdbcTemplate must not be null");
220222

221223
this.objectMapper = JsonMapper.builder().addModules(JacksonUtils.instantiateAvailableModules()).build();
224+
this.documentRowMapper = new DocumentRowMapper(this.objectMapper);
222225

223226
String vectorTable = builder.vectorTableName;
224227
this.vectorTableName = vectorTable.isEmpty() ? DEFAULT_TABLE_NAME : vectorTable.trim();
@@ -372,7 +375,7 @@ public List<Document> doSimilaritySearch(SearchRequest request) {
372375
return this.jdbcTemplate.query(
373376
String.format(this.getDistanceType().similaritySearchSqlTemplate, getFullyQualifiedTableName(),
374377
jsonPathFilter),
375-
new DocumentRowMapper(this.objectMapper), queryEmbedding, queryEmbedding, distance, request.getTopK());
378+
this.documentRowMapper, queryEmbedding, queryEmbedding, distance, request.getTopK());
376379
}
377380

378381
public List<Double> embeddingDistance(String query) {
@@ -599,8 +602,6 @@ public enum PgDistanceType {
599602

600603
private static class DocumentRowMapper implements RowMapper<Document> {
601604

602-
private static final String COLUMN_EMBEDDING = "embedding";
603-
604605
private static final String COLUMN_METADATA = "metadata";
605606

606607
private static final String COLUMN_ID = "id";

0 commit comments

Comments
 (0)