aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/VisitSearcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/VisitSearcher.java')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/VisitSearcher.java210
1 files changed, 0 insertions, 210 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/VisitSearcher.java b/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/VisitSearcher.java
deleted file mode 100644
index e330b76fa4b..00000000000
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/VisitSearcher.java
+++ /dev/null
@@ -1,210 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.storage.searcher;
-
-import com.yahoo.cloud.config.ClusterListConfig;
-import com.yahoo.cloud.config.SlobroksConfig;
-import com.yahoo.document.config.DocumentmanagerConfig;
-import com.yahoo.vespa.config.content.LoadTypeConfig;
-import com.yahoo.component.ComponentId;
-import com.yahoo.component.ComponentSpecification;
-import com.yahoo.document.Document;
-import com.yahoo.document.DocumentId;
-import com.yahoo.documentapi.*;
-import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol;
-import com.yahoo.feedapi.FeedContext;
-import com.yahoo.feedapi.MessagePropertyProcessor;
-import com.yahoo.jdisc.Metric;
-import com.yahoo.messagebus.StaticThrottlePolicy;
-import com.yahoo.search.Query;
-import com.yahoo.search.Result;
-import com.yahoo.search.Searcher;
-import com.yahoo.search.rendering.RendererRegistry;
-import com.yahoo.search.result.ErrorMessage;
-import com.yahoo.search.searchchain.Execution;
-import com.yahoo.vdslib.VisitorOrdering;
-import com.yahoo.vespaclient.ClusterDef;
-import com.yahoo.vespaclient.config.FeederConfig;
-
-/**
- * A searcher that allows you to iterate through a storage cluster using visiting.
- *
- * @deprecated do not use
- */
-// TODO: Remove on Vespa 7
-@Deprecated // OK
-public class VisitSearcher extends Searcher {
-
- public static final String VISITOR_CONTINUATION_TOKEN_FIELDNAME = "visitorContinuationToken";
- FeedContext context;
-
- public VisitSearcher(FeederConfig feederConfig,
- LoadTypeConfig loadTypeConfig,
- DocumentmanagerConfig documentmanagerConfig,
- SlobroksConfig slobroksConfig,
- ClusterListConfig clusterListConfig,
- Metric metric)
- throws Exception
- {
- this(FeedContext.getInstance(feederConfig, loadTypeConfig,
- documentmanagerConfig, slobroksConfig,
- clusterListConfig, metric));
- }
-
- VisitSearcher(FeedContext context) throws Exception {
- this.context = context;
- }
-
- class HitDataHandler extends DumpVisitorDataHandler {
- private final Result result;
- private final boolean populateHits;
- private final Object monitor = new Object();
-
- HitDataHandler(Result result, boolean populateHits) {
- this.result = result;
- this.populateHits = populateHits;
- }
-
- @Override
- public void onDocument(Document document, long l) {
- final DocumentHit hit = new DocumentHit(document, 0);
- if (populateHits) {
- hit.populateHitFields();
- }
- synchronized (monitor) {
- result.hits().add(hit);
- }
- }
-
- @Override
- public void onRemove(DocumentId documentId) {
- final DocumentRemoveHit hit = new DocumentRemoveHit(documentId);
- synchronized (monitor) {
- result.hits().add(hit);
- }
- }
- }
-
- public VisitorParameters getVisitorParameters(Query query, Result result) throws Exception {
- String documentSelection = query.properties().getString("visit.selection");
- if (documentSelection == null) {
- documentSelection = "";
- }
-
- VisitorParameters params = new VisitorParameters(documentSelection);
- params.setMaxBucketsPerVisitor(query.properties().getInteger("visit.maxBucketsPerVisitor", 1));
- params.setMaxPending(query.properties().getInteger("visit.maxPendingMessagesPerVisitor", 32));
- params.setMaxFirstPassHits(query.properties().getInteger("visit.approxMaxDocs", 1));
- params.setMaxTotalHits(query.properties().getInteger("visit.approxMaxDocs", 1));
- params.setThrottlePolicy(new StaticThrottlePolicy().setMaxPendingCount(
- query.properties().getInteger("visit.maxPendingVisitors", 1)));
- params.setToTimestamp(query.properties().getLong("visit.toTimestamp", 0L));
- params.setFromTimestamp(query.properties().getLong("visit.fromTimestamp", 0L));
-
- String pri = query.properties().getString("visit.priority");
- if (pri != null) {
- params.setPriority(DocumentProtocol.Priority.valueOf(pri));
- }
-
- if (query.properties().getBoolean("visit.visitInconsistentBuckets")) {
- params.visitInconsistentBuckets(true);
- }
-
- String ordering = query.properties().getString("visit.order");
- if (!"ascending".equalsIgnoreCase(ordering)) {
- params.setVisitorOrdering(VisitorOrdering.ASCENDING);
- } else {
- params.setVisitorOrdering(VisitorOrdering.DESCENDING);
- }
-
- String remoteCluster = query.properties().getString("visit.dataHandler");
- if (remoteCluster != null) {
- params.setRemoteDataHandler(remoteCluster);
- } else {
- params.setLocalDataHandler(new HitDataHandler(
- result, query.properties().getBoolean("populatehitfields", false)));
- }
-
- String fieldSet = query.properties().getString("visit.fieldSet");
- if (fieldSet != null) {
- params.fieldSet(fieldSet);
- }
-
- String continuation = query.properties().getString("visit.continuation");
- if (continuation != null) {
- params.setResumeToken(ContinuationHit.getToken(continuation));
- }
-
- params.setVisitRemoves(query.properties().getBoolean("visit.visitRemoves"));
-
- MessagePropertyProcessor.PropertySetter propertySetter;
- propertySetter = context.getPropertyProcessor().buildPropertySetter(query.getHttpRequest());
-
- propertySetter.process(params);
-
- if (context.getClusterList().getStorageClusters().size() == 0) {
- throw new IllegalArgumentException("No content clusters have been defined");
- }
-
- String route = query.properties().getString("visit.cluster");
- ClusterDef found = null;
- if (route != null) {
- String names = "";
- for (ClusterDef c : context.getClusterList().getStorageClusters()) {
- if (c.getName().equals(route)) {
- found = c;
- }
- if (!names.isEmpty()) {
- names += ", ";
- }
- names += c.getName();
- }
- if (found == null) {
- throw new IllegalArgumentException("Your vespa cluster contains the storage clusters " + names + ", not " + route + ". Please select a valid vespa cluster.");
- }
- } else if (context.getClusterList().getStorageClusters().size() == 1) {
- found = context.getClusterList().getStorageClusters().get(0);
- } else {
- throw new IllegalArgumentException("Multiple content clusters are defined, select one using the \"visit.cluster\" option");
- }
-
- params.setRoute("[Storage:cluster=" + found.getName() + ";clusterconfigid=" + found.getConfigId() + "]");
- return params;
- }
-
- @Override
- public Result search(Query query, Execution execution) {
- Result result = execution.search(query);
-
- VisitorParameters parameters;
-
- try {
- parameters = getVisitorParameters(query, result);
- } catch (Exception e) {
- return new Result(query, ErrorMessage.createBadRequest("Illegal parameters: " + e.toString()));
- }
-
- if (parameters != null) {
- VisitorSession session = context.getSessionFactory().createVisitorSession(parameters);
-
- try {
- if (!session.waitUntilDone(query.getTimeout())) {
- return new Result(query, ErrorMessage.createTimeout("Visitor timed out"));
- }
-
- ProgressToken token = session.getProgress();
- if (!token.isFinished()) {
- final ContinuationHit continuation = new ContinuationHit(token);
- result.hits().setField(VISITOR_CONTINUATION_TOKEN_FIELDNAME, continuation.getValue());
- }
- } catch (InterruptedException e) {
- } finally {
- session.destroy();
- }
- }
-
- GetSearcher.setOutputFormat(query, result);
- query.setHits(result.hits().size());
- return result;
- }
-
-}