From a5544d5eef5c7a0f5a8ab30781cd6b04a31bde76 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Thu, 8 Feb 2024 18:02:24 +0100 Subject: Pass embedder arguments --- .../indexinglanguage/expressions/EmbedExpression.java | 15 +++++++++++---- .../com/yahoo/vespa/indexinglanguage/ScriptTestCase.java | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'indexinglanguage') diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java index 5daf74a9723..8ae28799230 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; /** * Embeds a string in a tensor space using the configured Embedder component @@ -196,17 +197,23 @@ public class EmbedExpression extends Expression { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("embed"); - if (this.embedderId != null && this.embedderId.length() > 0) { + if (this.embedderId != null && !this.embedderId.isEmpty()) sb.append(" ").append(this.embedderId); - } + embedderArguments.forEach(arg -> sb.append(" ").append(arg)); return sb.toString(); } @Override - public int hashCode() { return 98857339; } + public int hashCode() { return Objects.hash(embedder.hashCode(), embedder, embedderArguments); } @Override - public boolean equals(Object o) { return o instanceof EmbedExpression; } + public boolean equals(Object o) { + if ( ! super.equals(o)) return false; + if ( ! (o instanceof EmbedExpression other)) return false; + if ( ! Objects.equals(embedder, other.embedder)) return false; + if ( ! Objects.equals(embedderArguments, other.embedderArguments)) return false; + return true; + } private static String validEmbedders(Map embedders) { List embedderIds = new ArrayList<>(); diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java index 7fe55b738df..06ff6bc85b1 100644 --- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java +++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java @@ -358,6 +358,7 @@ public class ScriptTestCase { var expression = Expression.fromString("input myTextArray | embed emb1 passage | attribute 'mySparseTensor'", new SimpleLinguistics(), embedders); + assertEquals("input myTextArray | embed emb1 passage | attribute mySparseTensor", expression.toString()); SimpleTestAdapter adapter = new SimpleTestAdapter(); adapter.createField(new Field("myTextArray", new ArrayDataType(DataType.STRING))); -- cgit v1.2.3