summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-05-03 13:29:36 +0200
committerJon Bratseth <bratseth@oath.com>2018-05-03 13:29:36 +0200
commit6f50b8b324a35b5aa929e04c0b043e97a93753a7 (patch)
treeee94abccc80216243a7dc4ca43bb10153481ffa5 /container-search/src/main/java/com/yahoo/search
parent2c888efa6eda254932d1f97e3f17bae83751397f (diff)
Expect the right context
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java20
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/Hit.java5
2 files changed, 10 insertions, 15 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java
index 7e848243c99..9db0215af36 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/HitConverter.java
@@ -52,21 +52,13 @@ class HitConverter implements ResultBuilder.HitConverter {
hit.setFillable();
hit.setSearcherSpecificMetaData(searcher, summaryClass);
- Hit ctxHit = (Hit)groupHit.getContext();
- if (ctxHit == null) {
+ GroupingListHit hitContext = (GroupingListHit)groupHit.getContext();
+ if (hitContext == null)
throw new NullPointerException("Hit has no context.");
- }
- hit.setSource(ctxHit.getSource());
- hit.setQuery(ctxHit.getQuery());
-
- if (ctxHit instanceof GroupingListHit) {
- // in a live system the ctxHit can only by GroupingListHit, but because the code used Hit prior to version
- // 5.10 we need to check to avoid breaking existing unit tests -- both internally and with customers
- QueryPacketData queryPacketData = ((GroupingListHit)ctxHit).getQueryPacketData();
- if (queryPacketData != null) {
- hit.setQueryPacketData(queryPacketData);
- }
- }
+ hit.setSource(hitContext.getSource());
+ hit.setQuery(hitContext.getQuery());
+ if (hitContext.getQueryPacketData() != null)
+ hit.setQueryPacketData(hitContext.getQueryPacketData());
return hit;
}
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 8b2c59ac24a..0664720c7d7 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
@@ -46,6 +46,9 @@ import java.util.stream.Collectors;
*/
public class Hit extends ListenableFreezableClass implements Data, Comparable<Hit>, Cloneable {
+ // Collection fields in hits are, when possible lazy because much of the work of a container
+ // consists of allocating and then garbage collecting hits
+
private static final String DOCUMENT_ID = "documentid";
/** A collection of string keyed object properties. */
@@ -61,7 +64,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
private URI id;
/** The types of this hit */
- private Set<String> types = new ArraySet<>(2);
+ private Set<String> types = new ArraySet<>(1);
/** The relevance of this hit */
private Relevance relevance;