diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2023-08-24 09:38:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-24 09:38:55 +0200 |
commit | a5b9150a448ed1c30d13c64055a0bc534a1b4a95 (patch) | |
tree | 8ea88c39891fc32a49442efc9daa275669c63bb2 | |
parent | f37ad506b56dffd8002eb9334d0811e788dade01 (diff) | |
parent | ca29ea2ba755f115aca39245d9e8dfeb0dfd4d43 (diff) |
Merge pull request #28130 from vespa-engine/arnej/no-more-levels-under-input
let values under "input" through as unparsed strings
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java | 2 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java b/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java index c931c6a356f..45a0c606584 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java +++ b/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java @@ -77,7 +77,7 @@ class Json2SingleLevelMap { } else if (token == JsonToken.START_ARRAY) { map.put(fieldName, skipChildren(parser, buf)); } else if (token == JsonToken.START_OBJECT) { - if (fieldName.equals("select.where") || fieldName.equals("select.grouping")) { + if (fieldName.startsWith("input.") || fieldName.equals("select.where") || fieldName.equals("select.grouping")) { map.put(fieldName, skipChildren(parser, buf)); } else { parse(map, fieldName + "."); diff --git a/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java index 83022ccf3ff..7536a8c4914 100644 --- a/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java @@ -307,6 +307,21 @@ public class JSONSearchHandlerTestCase { } @Test + void testInputParameters() throws IOException { + String json = """ + { + "input": { + "query(q_category)": { "Tablet Keyboard Cases": 42.5 }, + "query(q_vector)": [ 1, 2.5, 3 ] + } + } + """; + Map<String, String> map = new Json2SingleLevelMap(new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8))).parse(); + assertEquals("{ \"Tablet Keyboard Cases\": 42.5 }", map.get("input.query(q_category)")); + assertEquals("[ 1, 2.5, 3 ]", map.get("input.query(q_vector)")); + } + + @Test void testSelectParameters() throws IOException { ObjectNode json = jsonMapper.createObjectNode(); |