From bce45c2d2fd1a28381884fc0bed0dfcc89cf3a19 Mon Sep 17 00:00:00 2001 From: Dimitrios Begnis Date: Mon, 20 May 2024 23:56:41 +0200 Subject: [PATCH] Use <> for inequality operator in Neo4j filter expression implementation --- .../filter/Neo4jVectorFilterExpressionConverter.java | 3 ++- .../filter/Neo4jVectorFilterExpressionConverterTests.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverter.java b/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverter.java index 5d03333be..41ce4f800 100644 --- a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverter.java +++ b/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverter.java @@ -24,6 +24,7 @@ import org.springframework.ai.vectorstore.filter.converter.AbstractFilterExpress * Converts {@link Expression} into Neo4j condition expression format. * * @author Gerrit Meier + * @author Dimitrios Begnis */ public class Neo4jVectorFilterExpressionConverter extends AbstractFilterExpressionConverter { @@ -46,7 +47,7 @@ public class Neo4jVectorFilterExpressionConverter extends AbstractFilterExpressi case AND -> " AND "; case OR -> " OR "; case EQ -> " = "; - case NE -> " != "; + case NE -> " <> "; case LT -> " < "; case LTE -> " <= "; case GT -> " > "; diff --git a/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverterTests.java b/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverterTests.java index 37bb46379..8c8a397f8 100644 --- a/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverterTests.java +++ b/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/filter/Neo4jVectorFilterExpressionConverterTests.java @@ -37,6 +37,7 @@ import static org.springframework.ai.vectorstore.filter.Filter.ExpressionType.OR /** * @author Gerrit Meier + * @author Dimitrios Begnis */ public class Neo4jVectorFilterExpressionConverterTests { @@ -76,13 +77,13 @@ public class Neo4jVectorFilterExpressionConverterTests { @Test public void testNe() { - // year >= 2020 OR country = "BG" AND city != "Sofia" + // year >= 2020 OR country = "BG" AND city <> "Sofia" String vectorExpr = converter .convertExpression(new Expression(OR, new Expression(GTE, new Key("year"), new Value(2020)), new Expression(AND, new Expression(EQ, new Key("country"), new Value("BG")), new Expression(NE, new Key("city"), new Value("Sofia"))))); assertThat(vectorExpr).isEqualTo( - "node.`metadata.year` >= 2020 OR node.`metadata.country` = \"BG\" AND node.`metadata.city` != \"Sofia\""); + "node.`metadata.year` >= 2020 OR node.`metadata.country` = \"BG\" AND node.`metadata.city` <> \"Sofia\""); } @Test