aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
diff options
context:
space:
mode:
authorOlli Virtanen <olli.virtanen@oath.com>2019-04-02 11:47:20 +0200
committerOlli Virtanen <olli.virtanen@oath.com>2019-04-02 11:47:20 +0200
commit0537fc5024145cf383f9c76039cd26d739df8462 (patch)
treec96ef31e79cdf38966b0850ec6ad0a2ca00e238b /container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
parente680e17b11b01ef67b96957fe852e3de5cbc050b (diff)
Use sort data with java dispatcher
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java21
1 files changed, 11 insertions, 10 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
index df72720a46c..f5e437c2410 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
@@ -24,6 +24,7 @@ import com.yahoo.search.Query;
import com.yahoo.search.Result;
import com.yahoo.search.cluster.PingableSearcher;
import com.yahoo.search.grouping.vespa.GroupingExecutor;
+import com.yahoo.search.query.Sorting;
import com.yahoo.search.result.Coverage;
import com.yahoo.search.result.ErrorHit;
import com.yahoo.search.result.ErrorMessage;
@@ -88,10 +89,9 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
* This is an endpoint - searchers will never propagate the search to any nested searcher.
*
* @param query the query to search
- * @param queryPacket the serialized query representation to pass to the search cluster
* @param execution the query execution context
*/
- protected abstract Result doSearch2(Query query, QueryPacket queryPacket, Execution execution);
+ protected abstract Result doSearch2(Query query, Execution execution);
protected abstract void doPartialFill(Result result, String summaryClass);
@@ -184,15 +184,10 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
if (root == null || root instanceof NullItem) // root can become null after resolving and transformation?
return new Result(query);
- QueryPacket queryPacket = createQueryPacket(serverId, query);
-
- if (isLoggingFine())
- getLogger().fine("made QueryPacket: " + queryPacket);
-
Result result = null;
if (result == null) {
- result = doSearch2(query, queryPacket, execution);
+ result = doSearch2(query, execution);
if (isLoggingFine())
getLogger().fine("Result NOT retrieved from cache");
@@ -209,6 +204,10 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
queryPacket.setCompressionLimit(compressionLimit);
if (compressionLimit != 0)
queryPacket.setCompressionType(query.properties().getString(PACKET_COMPRESSION_TYPE, "lz4"));
+
+ if (isLoggingFine())
+ getLogger().fine("made QueryPacket: " + queryPacket);
+
return queryPacket;
}
@@ -452,7 +451,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
return new FillHitsResult(skippedHits, lastError);
}
- private void extractDocumentInfo(FastHit hit, DocumentInfo document) {
+ private void extractDocumentInfo(FastHit hit, DocumentInfo document, Sorting sorting) {
hit.setSource(getName());
Number rank = document.getMetric();
@@ -462,6 +461,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
hit.setDistributionKey(document.getDistributionKey());
hit.setGlobalId(document.getGlobalId());
hit.setPartId(document.getPartId());
+ hit.setSortData(document.getSortData(), sorting);
}
protected DocsumDefinitionSet getDocsumDefinitionSet(Query query) {
@@ -498,6 +498,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
QueryPacketData queryPacketData,
Optional<Integer> channelDistributionKey) {
Query myQuery = result.getQuery();
+ Sorting sorting = myQuery.getRanking().getSorting();
for (DocumentInfo document : documents) {
@@ -510,7 +511,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
hit.setFillable();
hit.setCached(false);
- extractDocumentInfo(hit, document);
+ extractDocumentInfo(hit, document, sorting);
channelDistributionKey.ifPresent(hit::setDistributionKey);
result.hits().add(hit);