summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-01-14 18:41:49 +0100
committerJon Bratseth <bratseth@gmail.com>2023-01-14 18:41:49 +0100
commit416f596b150ec159717bfd2f9b2ef70e4d4cd3dd (patch)
treefd78cf0541670dd50e2dc3256c5b9755ced8f73e /vespaclient-container-plugin
parenta289581cbf94ff6997356110b54bd6993e956b9e (diff)
Support direct tensor rendering
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java17
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java2
2 files changed, 15 insertions, 4 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index 7a66ba2ee79..1e2ee3968fa 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -749,14 +749,25 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
private boolean tensorShortForm() {
if (request != null &&
request.parameters().containsKey("format.tensors") &&
- request.parameters().get("format.tensors").contains("long")) {
+ ( request.parameters().get("format.tensors").contains("long")
+ || request.parameters().get("format.tensors").contains("long-value"))) {
return false;
}
return true; // default
}
+ private boolean tensorDirectValues() {
+ if (request != null &&
+ request.parameters().containsKey("format.tensors") &&
+ ( request.parameters().get("format.tensors").contains("short-value")
+ || request.parameters().get("format.tensors").contains("long-value"))) {
+ return true;
+ }
+ return false; // TODO: Flip default on Vespa 9
+ }
+
synchronized void writeSingleDocument(Document document) throws IOException {
- new JsonWriter(json, tensorShortForm()).writeFields(document);
+ new JsonWriter(json, tensorShortForm(), tensorDirectValues()).writeFields(document);
}
synchronized void writeDocumentsArrayStart() throws IOException {
@@ -775,7 +786,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
ByteArrayOutputStream myOut = new ByteArrayOutputStream(1);
myOut.write(','); // Prepend rather than append, to avoid double memory copying.
try (JsonGenerator myJson = jsonFactory.createGenerator(myOut)) {
- new JsonWriter(myJson, tensorShortForm()).write(document);
+ new JsonWriter(myJson, tensorShortForm(), tensorDirectValues()).write(document);
}
docs.add(myOut);
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
index 973d0a98b24..cc6b8567b03 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
@@ -527,7 +527,7 @@ public class DocumentV1ApiTest {
" \"id\": \"id:space:music::one\"," +
" \"fields\": {" +
" \"artist\": \"Tom Waits\"," +
- " \"embedding\": { \"cells\": [{\"address\":{\"x\":\"0\"},\"value\":1.0},{\"address\":{\"x\":\"1\"},\"value\": 2.0},{\"address\":{\"x\":\"2\"},\"value\": 3.0}]}" +
+ " \"embedding\": { \"type\": \"tensor(x[3])\",\"cells\": [{\"address\":{\"x\":\"0\"},\"value\":1.0},{\"address\":{\"x\":\"1\"},\"value\": 2.0},{\"address\":{\"x\":\"2\"},\"value\": 3.0}]}" +
" }" +
"}", response.readAll());
assertEquals(200, response.getStatus());