diff --git a/pgvector/runtime/src/main/java/io/quarkiverse/langchain4j/pgvector/PgVectorEmbeddingStore.java b/pgvector/runtime/src/main/java/io/quarkiverse/langchain4j/pgvector/PgVectorEmbeddingStore.java
index e69de29bb..60cf84ee9 100644
--- a/pgvector/runtime/src/main/java/io/quarkiverse/langchain4j/pgvector/PgVectorEmbeddingStore.java
+++ b/pgvector/runtime/src/main/java/io/quarkiverse/langchain4j/pgvector/PgVectorEmbeddingStore.java
@@ -0,0 +1,301 @@
+package io.quarkiverse.langchain4j.pgvector;
+
+import static dev.langchain4j.internal.Utils.*;
+import static dev.langchain4j.internal.ValidationUtils.*;
+import static java.util.Collections.singletonList;
+import static java.util.stream.Collectors.toList;
+
+import java.sql.*;
+import java.util.*;
+
+import org.postgresql.util.PSQLException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.pgvector.PGvector;
+
+import dev.langchain4j.data.document.Metadata;
+import dev.langchain4j.data.embedding.Embedding;
+import dev.langchain4j.data.segment.TextSegment;
+import dev.langchain4j.store.embedding.EmbeddingMatch;
+import dev.langchain4j.store.embedding.EmbeddingStore;
+import io.agroal.api.AgroalDataSource;
+import io.quarkiverse.langchain4j.QuarkusJsonCodecFactory;
+import io.quarkus.logging.Log;
+
+/**
+ * PGVector EmbeddingStore Implementation
+ *
+ * Only cosine similarity is used.
+ * Only ivfflat index is used.
+ */
+public class PgVectorEmbeddingStore implements EmbeddingStore {
+
+ ObjectMapper objectMapper = QuarkusJsonCodecFactory.ObjectMapperHolder.MAPPER;
+ private static final Logger log = LoggerFactory.getLogger(PgVectorEmbeddingStore.class);
+ private static final TypeReference