diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-02-09 10:41:23 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-02-09 10:44:44 +0100 |
commit | 5abaceb7f7ae65aa0060c3141610aa82498a19d9 (patch) | |
tree | 0c10379d314948ffe91543c1d4c96c00da3b33a2 /container-search/src/main/java/com/yahoo/prelude | |
parent | 16a5444d2acda3baff9b21dd624c1f94018e0254 (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')
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; |