diff options
author | Harald Musum <musum@oath.com> | 2017-08-31 09:32:49 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2017-08-31 09:32:49 +0200 |
commit | 9f506465b36ef1b7a858211882fc3594d170b418 (patch) | |
tree | 5599ed86e4cee0fcb0dd696572b8d038b361b5c2 /container-search | |
parent | e4dc0493754618dd33ddf8985d0ddd23001a9d39 (diff) | |
parent | 0c7af1343cec5ca95e338ce83dda158f123e72dc (diff) |
Merge branch 'master' into revert-3275-revert-3260-hmusum/remove-version-from-def-files
Diffstat (limited to 'container-search')
4 files changed, 18 insertions, 2 deletions
diff --git a/container-search/pom.xml b/container-search/pom.xml index f622567acde..837629c44b9 100644 --- a/container-search/pom.xml +++ b/container-search/pom.xml @@ -143,6 +143,7 @@ <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> + <version>4.5</version> </dependency> <dependency> <groupId>org.mockito</groupId> @@ -210,7 +211,7 @@ <plugin> <!-- For the YQL query language --> <groupId>org.antlr</groupId> <artifactId>antlr4-maven-plugin</artifactId> - <version>${antlr4.version}</version> + <version>4.5</version> <executions> <execution> <configuration> diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java index 999846d1755..2eec7109722 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java @@ -271,12 +271,14 @@ public class FastHit extends Hit { public void addSummary(Docsum docsum) { LazyDocsumValue lazyDocsumValue = new LazyDocsumValue(docsum); + reserve(docsum.getDefinition().getFieldCount()); for (DocsumField field : docsum.getDefinition().getFields()) { setDocsumFieldIfNotPresent(field.getName(), lazyDocsumValue); } } void addSummary(DocsumDefinition docsumDef, Inspector value) { + reserve(docsumDef.getFieldCount()); for (DocsumField field : docsumDef.getFields()) { String fieldName = field.getName(); if (value.type() == Type.STRING && diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java index b03c0cb752f..6b4d3594087 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java @@ -227,6 +227,7 @@ public class Dispatcher extends AbstractComponent { } private void fill(FastHit hit, Inspector summary) { + hit.reserve(summary.fieldCount()); summary.traverse((String name, Inspector value) -> { hit.setField(name, nativeTypeOf(value)); }); diff --git a/container-search/src/main/java/com/yahoo/search/result/Hit.java b/container-search/src/main/java/com/yahoo/search/result/Hit.java index 815006edbf5..0bfbecfd9ab 100644 --- a/container-search/src/main/java/com/yahoo/search/result/Hit.java +++ b/container-search/src/main/java/com/yahoo/search/result/Hit.java @@ -101,8 +101,12 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi public static final String SDDOCNAME_FIELD = "sddocname"; private Map<String,Object> getFieldMap() { + return getFieldMap(16); + } + private Map<String,Object> getFieldMap(int minSize) { if (fields == null) { - fields = new LinkedHashMap<>(16); + // Compensate for loadfactor and then some, rounded up.... + fields = new LinkedHashMap<>(2*minSize); } return fields; } @@ -448,6 +452,14 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi public final Map<String,Object> fields() { return getUnmodifiableFieldMap(); } /** + * Will preallocate in order to avoid resizing. + * @param minSize + */ + public void reserve(int minSize) { + getFieldMap(minSize); + } + + /** * Fields * @return An iterator for traversing the fields * @since 5.1.3 |