summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-10-18 22:32:58 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-10-18 22:32:58 +0200
commit7d54cd9ee6ad52836dfac4b584053a9fe7160b5b (patch)
tree23be90437474d3890786d1a81a1f69a6fb678bf6 /container-search
parent282ed72b5ad4bb44aa11b35ddd31b16c679db720 (diff)
- Unify on the faster JsonRender. The default Value.toString has a very high initial cost as it is intended for large json structures.
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java11
1 files changed, 4 insertions, 7 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java
index 4f55b9946a8..31f99ab1927 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java
@@ -418,8 +418,7 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> {
protected void renderGroupMetadata(GroupId id) throws IOException {
if (!(id instanceof ValueGroupId || id instanceof BucketGroupId)) return;
- if (id instanceof ValueGroupId) {
- ValueGroupId<?> valueId = (ValueGroupId<?>) id;
+ if (id instanceof ValueGroupId valueId) {
generator.writeStringField(GROUPING_VALUE, getIdValue(valueId));
} else {
BucketGroupId<?> bucketId = (BucketGroupId<?>) id;
@@ -663,7 +662,7 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> {
if (key.type() == Type.STRING) {
map.put(key.asString(), value);
} else {
- map.put(key.toString(), value);
+ map.put(JsonRender.render(key, new StringBuilder(), true).toString(), value);
}
}
return map;
@@ -685,7 +684,7 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> {
if (item.type() == Type.STRING) {
wset.put(item.asString(), weight.asLong());
} else if (settings.jsonWsetsAll) {
- wset.put(item.toString(), weight.asLong());
+ wset.put(JsonRender.render(item, new StringBuilder(), true).toString(), weight.asLong());
} else {
return null;
}
@@ -753,9 +752,7 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> {
}
private void renderInspectorDirect(Inspector data) throws IOException {
- StringBuilder intermediate = new StringBuilder();
- JsonRender.render(data, intermediate, true);
- generator().writeRawValue(intermediate.toString());
+ generator().writeRawValue(JsonRender.render(data, new StringBuilder(), true).toString());
}
protected void renderFieldContents(Object field) throws IOException {