summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-02-09 10:41:23 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2024-02-09 10:44:44 +0100
commit5abaceb7f7ae65aa0060c3141610aa82498a19d9 (patch)
tree0c10379d314948ffe91543c1d4c96c00da3b33a2 /container-search/src/main/java/com/yahoo/prelude
parent16a5444d2acda3baff9b21dd624c1f94018e0254 (diff)
- Let there only be one way to wire query to the grouping hits.
Enforce that by requiring it in the constructor. - Carry the DocumentDatabase along, not only the DocusumDefinitionSet.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java6
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java10
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/GroupingListHit.java16
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java21
4 files changed, 23 insertions, 30 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java
index 55601059901..adfb1d06ae3 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinitionSet.java
@@ -35,8 +35,8 @@ public final class DocsumDefinitionSet {
public DocsumDefinitionSet(Collection<DocumentSummary> docsumDefinitions) {
this.definitionsByName = docsumDefinitions.stream()
- .map(summary -> new DocsumDefinition(summary))
- .collect(Collectors.toUnmodifiableMap(summary -> summary.name(),
+ .map(DocsumDefinition::new)
+ .collect(Collectors.toUnmodifiableMap(DocsumDefinition::name,
summary -> summary));
}
@@ -95,7 +95,7 @@ public final class DocsumDefinitionSet {
public String toString() {
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, DocsumDefinition> e : definitionsByName.entrySet() ) {
- if (sb.length() != 0) {
+ if (!sb.isEmpty()) {
sb.append(",");
}
sb.append("[").append(e.getKey()).append(",").append(e.getValue().name()).append("]");
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java
index 8d1c3bcd678..ea6b6a8ee38 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocumentDatabase.java
@@ -1,16 +1,8 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude.fastsearch;
-import com.yahoo.search.schema.RankProfile;
import com.yahoo.search.schema.Schema;
-import com.yahoo.search.schema.SchemaInfo;
-import com.yahoo.tensor.TensorType;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+
/**
* Representation of a document database realizing a schema in a content cluster.
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/GroupingListHit.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/GroupingListHit.java
index 11fbedfc0dd..7e60f8a41b6 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/GroupingListHit.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/GroupingListHit.java
@@ -3,28 +3,32 @@ package com.yahoo.prelude.fastsearch;
import java.util.List;
+import com.yahoo.search.Query;
import com.yahoo.search.result.Hit;
+import com.yahoo.search.schema.Schema;
import com.yahoo.searchlib.aggregation.Grouping;
public class GroupingListHit extends Hit {
/** for unit tests only, may give problems if grouping contains docsums */
public GroupingListHit(List<Grouping> groupingList) {
- this(groupingList, null);
+ this(groupingList, null, null);
}
- public GroupingListHit(List<Grouping> groupingList, DocsumDefinitionSet defs) {
- super("meta:grouping", 0);
+ public GroupingListHit(List<Grouping> groupingList, DocumentDatabase documentDatabase, Query query) {
+ super("meta:grouping", 0, query);
this.groupingList = groupingList;
- this.defs = defs;
+ this.documentDatabase = documentDatabase;
}
public boolean isMeta() { return true; }
public List<Grouping> getGroupingList() { return groupingList; }
- public DocsumDefinitionSet getDocsumDefinitionSet() { return defs; }
+ public DocsumDefinitionSet getDocsumDefinitionSet() { return documentDatabase.getDocsumDefinitionSet(); }
+ public Schema getSchema() { return documentDatabase.schema(); }
+ public DocumentDatabase getDocumentDatBase() { return documentDatabase; }
private final List<Grouping> groupingList;
- private final DocsumDefinitionSet defs;
+ private final DocumentDatabase documentDatabase;
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java b/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java
index 927fa37cc77..3c4e8107df5 100644
--- a/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/searcher/JuniperSearcher.java
@@ -83,9 +83,7 @@ public class JuniperSearcher extends Searcher {
List<Hit> hits = new ArrayList<>(worstCase);
for (Iterator<Hit> i = result.hits().deepIterator(); i.hasNext();) {
Hit hit = i.next();
- if ( ! (hit instanceof FastHit)) continue;
-
- FastHit fastHit = (FastHit)hit;
+ if ( ! (hit instanceof FastHit fastHit)) continue;
if (fastHit.isFilled(summaryClass)) continue;
hits.add(fastHit);
@@ -99,9 +97,8 @@ public class JuniperSearcher extends Searcher {
String summaryClass, IndexFacts.Session indexFacts) {
while (hitsToHighlight.hasNext()) {
Hit hit = hitsToHighlight.next();
- if ( ! (hit instanceof FastHit)) continue;
+ if ( ! (hit instanceof FastHit fastHit)) continue;
- FastHit fastHit = (FastHit) hit;
if (summaryClass != null && ! fastHit.isFilled(summaryClass)) continue;
Object searchDefinitionField = fastHit.getField(Hit.SDDOCNAME_FIELD);
@@ -125,9 +122,9 @@ public class JuniperSearcher extends Searcher {
private class StringArrayConverter implements ArrayTraverser {
- private Index index;
- private boolean bolding;
- private Value.ArrayValue convertedField = new Value.ArrayValue();
+ private final Index index;
+ private final boolean bolding;
+ private final Value.ArrayValue convertedField = new Value.ArrayValue();
/**
* This converts the backend binary highlighting of each item in an array of string field,
@@ -189,8 +186,8 @@ public class JuniperSearcher extends Searcher {
}
if (newFieldParts != null) {
i.remove();
- for (Iterator<FieldPart> j = newFieldParts.iterator(); j.hasNext();) {
- i.add(j.next());
+ for (FieldPart newFieldPart : newFieldParts) {
+ i.add(newFieldPart);
}
}
}
@@ -220,7 +217,7 @@ public class JuniperSearcher extends Searcher {
if (insideHighlight) {
newFieldParts.add(new BoldCloseFieldPart(boldCloseTag));
} else {
- if (newFieldParts.size() > 0
+ if (!newFieldParts.isEmpty()
&& newFieldParts.get(newFieldParts.size() - 1) instanceof BoldCloseFieldPart) {
newFieldParts.remove(newFieldParts.size() - 1);
} else {
@@ -230,7 +227,7 @@ public class JuniperSearcher extends Searcher {
}
}
- private List<FieldPart> initFieldParts(List<FieldPart> newFieldParts) {
+ private static List<FieldPart> initFieldParts(List<FieldPart> newFieldParts) {
if (newFieldParts == null)
newFieldParts = new ArrayList<>();
return newFieldParts;