diff options
author | Jon Bratseth <bratseth@vespa.ai> | 2024-03-29 10:16:07 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@vespa.ai> | 2024-03-29 10:16:07 +0100 |
commit | 0f34d33fa2a0f4f0772868936e7f8c60e2074040 (patch) | |
tree | 152f5bc4bc6f8de803b5b7fad28fd60505e81680 /container-search/src/main/java | |
parent | 5279cf0b4ab52fb00078f7ba9d3155365691dcee (diff) |
Improve embedder error messages
Diffstat (limited to 'container-search/src/main/java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java | 3 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java | 18 |
2 files changed, 11 insertions, 10 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java index e8350831381..f27e9bbc281 100644 --- a/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java @@ -383,8 +383,7 @@ public class StemmingSearcher extends Searcher { } private int getWeight(Item block) { - if (block instanceof AndSegmentItem - && ((AndSegmentItem) block).getItemCount() > 0) { + if (block instanceof AndSegmentItem && ((AndSegmentItem) block).getItemCount() > 0) { return ((AndSegmentItem) block).getItem(0).getWeight(); } else { return block.getWeight(); diff --git a/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java b/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java index 4f1fa44b982..4485e538e13 100644 --- a/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java +++ b/container-search/src/main/java/com/yahoo/search/schema/internal/TensorConverter.java @@ -70,10 +70,13 @@ public class TensorConverter { embedder = requireEmbedder(embedderId); argument = matcher.group(2); } else if (embedders.isEmpty()) { - throw new IllegalStateException("No embedders provided"); // should never happen + throw new IllegalArgumentException("No embedders provided"); // should never happen } else if (embedders.size() > 1) { - throw new IllegalArgumentException("Multiple embedders are provided but no embedder id is given. " + - "Valid embedders are " + validEmbedders(embedders)); + String usage = "Usage: embed(embedder-id, 'text'). " + embedderIds(embedders); + if (! argument.contains("\"") && ! argument.contains("'")) + throw new IllegalArgumentException("Multiple embedders are provided but the string to embed is not quoted. " + usage); + else + throw new IllegalArgumentException("Multiple embedders are provided but no embedder id is given. " + usage); } else { var entry = embedders.entrySet().stream().findFirst().get(); embedderId = entry.getKey(); @@ -84,8 +87,7 @@ public class TensorConverter { private Embedder requireEmbedder(String embedderId) { if ( ! embedders.containsKey(embedderId)) - throw new IllegalArgumentException("Can't find embedder '" + embedderId + "'. " + - "Valid embedders are " + validEmbedders(embedders)); + throw new IllegalArgumentException("Can't find embedder '" + embedderId + "'. " + embedderIds(embedders)); return embedders.get(embedderId); } @@ -108,11 +110,11 @@ public class TensorConverter { return referencedValue.toString(); } - private static String validEmbedders(Map<String, Embedder> embedders) { + private static String embedderIds(Map<String, Embedder> embedders) { List<String> embedderIds = new ArrayList<>(); - embedders.forEach((key, value) -> embedderIds.add(key)); + embedders.forEach((key, value) -> embedderIds.add("'" + key + "'")); embedderIds.sort(null); - return String.join(",", embedderIds); + return "Available embedder ids are " + String.join(", ", embedderIds) + "."; } } |