summaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/main
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2024-04-01 20:35:36 +0200
committerJon Bratseth <bratseth@vespa.ai>2024-04-01 20:35:36 +0200
commit07b1050887f40b3a008c7b18de40e6eca40aabed (patch)
tree02311ba31e0d1c39a80450734ba7e37f553f545c /indexinglanguage/src/main
parenta10de7fb58ce8b5167a6afd6082f49a0f8cc7b1b (diff)
Expose cache to embedders
Diffstat (limited to 'indexinglanguage/src/main')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java11
2 files changed, 9 insertions, 6 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 5d5410c2ef0..05ac73618e8 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
@@ -169,9 +169,9 @@ public class EmbedExpression extends Expression {
private Tensor embed(String input, TensorType targetType, ExecutionContext context) {
return embedder.embed(input,
- new Embedder.Context(destination).setLanguage(context.getLanguage()).setEmbedderId(embedderId),
+ new Embedder.Context(destination, context.getCache()).setLanguage(context.getLanguage())
+ .setEmbedderId(embedderId),
targetType);
-
}
@Override
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
index 1935664cddc..ba07fc00ca8 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
@@ -1,6 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.indexinglanguage.expressions;
+import com.yahoo.collections.LazyMap;
import com.yahoo.document.DataType;
import com.yahoo.document.FieldPath;
import com.yahoo.document.datatypes.FieldValue;
@@ -21,7 +22,7 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter {
private final FieldValueAdapter adapter;
private FieldValue value;
private Language language;
- private Map<String, Object> cache = null;
+ private final Map<String, Object> cache = LazyMap.newHashMap();
public ExecutionContext() {
this(null);
@@ -120,17 +121,19 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter {
}
public void putCachedValue(String key, Object value) {
- if (cache == null)
- cache = new HashMap<>();
cache.put(key, value);
}
/** Returns a cached value, or null if not present. */
public Object getCachedValue(String key) {
- if (cache == null) return null;
return cache.get(key);
}
+ /** Returns a mutable reference to the cache of this. */
+ public Map<String, Object> getCache() {
+ return cache;
+ }
+
/** Clears all state in this except the cache. */
public ExecutionContext clear() {
variables.clear();