diff options
author | Jon Bratseth <bratseth@vespa.ai> | 2024-02-08 18:02:24 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@vespa.ai> | 2024-02-08 18:02:24 +0100 |
commit | a5544d5eef5c7a0f5a8ab30781cd6b04a31bde76 (patch) | |
tree | 573917f49d788cba051dcb908d1b6e45bc35665f /indexinglanguage | |
parent | 2885e639279cb6b0b6d9cc44bc9c15d3969a522a (diff) |
Pass embedder arguments
Diffstat (limited to 'indexinglanguage')
2 files changed, 12 insertions, 4 deletions
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<String, Embedder> embedders) { List<String> 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))); |