diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java index 75b353466f3..c99382a89ed 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java @@ -33,7 +33,7 @@ public class PgVectorStoreProperties { private PgIndexType indexType = PgIndexType.HNSW; - private PgDistanceType distanceType = PgDistanceType.CosineDistance; + private PgDistanceType distanceType = PgDistanceType.COSINE_DISTANCE; private boolean removeExistingVectorStoreTable = false; diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStorePropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStorePropertiesTests.java index d2441a8a0a7..8b3798db5ee 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStorePropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStorePropertiesTests.java @@ -33,7 +33,7 @@ public class PgVectorStorePropertiesTests { public void defaultValues() { var props = new PgVectorStoreProperties(); assertThat(props.getDimensions()).isEqualTo(PgVectorStore.INVALID_EMBEDDING_DIMENSION); - assertThat(props.getDistanceType()).isEqualTo(PgDistanceType.CosineDistance); + assertThat(props.getDistanceType()).isEqualTo(PgDistanceType.COSINE_DISTANCE); assertThat(props.getIndexType()).isEqualTo(PgIndexType.HNSW); assertThat(props.isRemoveExistingVectorStoreTable()).isFalse(); } @@ -43,12 +43,12 @@ public void customValues() { var props = new PgVectorStoreProperties(); props.setDimensions(1536); - props.setDistanceType(PgDistanceType.EuclideanDistance); + props.setDistanceType(PgDistanceType.EUCLIDEAN_DISTANCE); props.setIndexType(PgIndexType.IVFFLAT); props.setRemoveExistingVectorStoreTable(true); assertThat(props.getDimensions()).isEqualTo(1536); - assertThat(props.getDistanceType()).isEqualTo(PgDistanceType.EuclideanDistance); + assertThat(props.getDistanceType()).isEqualTo(PgDistanceType.EUCLIDEAN_DISTANCE); assertThat(props.getIndexType()).isEqualTo(PgIndexType.IVFFLAT); assertThat(props.isRemoveExistingVectorStoreTable()).isTrue(); } diff --git a/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java b/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java index 76dbfab0d9d..fbba123f073 100644 --- a/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java +++ b/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java @@ -116,17 +116,17 @@ public enum PgDistanceType { // embeddings), use inner product for best performance. // The Sentence transformers are NOT normalized: // https://github.com/UKPLab/sentence-transformers/issues/233 - EuclideanDistance("<->", "vector_l2_ops", + EUCLIDEAN_DISTANCE("<->", "vector_l2_ops", "SELECT *, embedding <-> ? AS distance FROM %s WHERE embedding <-> ? < ? %s ORDER BY distance LIMIT ? "), // NOTE: works only if If vectors are normalized to length 1 (like OpenAI // embeddings), use inner product for best performance. // The Sentence transformers are NOT normalized: // https://github.com/UKPLab/sentence-transformers/issues/233 - NegativeInnerProduct("<#>", "vector_ip_ops", + NEGATIVE_INNER_PRODUCT("<#>", "vector_ip_ops", "SELECT *, (1 + (embedding <#> ?)) AS distance FROM %s WHERE (1 + (embedding <#> ?)) < ? %s ORDER BY distance LIMIT ? "), - CosineDistance("<=>", "vector_cosine_ops", + COSINE_DISTANCE("<=>", "vector_cosine_ops", "SELECT *, embedding <=> ? AS distance FROM %s WHERE embedding <=> ? < ? %s ORDER BY distance LIMIT ? "); public final String operator; @@ -197,12 +197,12 @@ private Map toMap(PGobject pgObject) { } public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient) { - this(jdbcTemplate, embeddingClient, INVALID_EMBEDDING_DIMENSION, PgVectorStore.PgDistanceType.CosineDistance, + this(jdbcTemplate, embeddingClient, INVALID_EMBEDDING_DIMENSION, PgVectorStore.PgDistanceType.COSINE_DISTANCE, false, PgIndexType.NONE); } public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient, int dimensions) { - this(jdbcTemplate, embeddingClient, dimensions, PgVectorStore.PgDistanceType.CosineDistance, false, + this(jdbcTemplate, embeddingClient, dimensions, PgVectorStore.PgDistanceType.COSINE_DISTANCE, false, PgIndexType.NONE); }