summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
Publish
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
new file mode 100644
index 00000000000..c8847507039
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
@@ -0,0 +1,79 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.searchchain.model.federation;
+
+import com.google.common.collect.ImmutableList;
+import com.yahoo.container.bundle.BundleInstantiationSpecification;
+import com.yahoo.component.chain.dependencies.Dependencies;
+import com.yahoo.component.chain.model.ChainedComponentModel;
+import com.yahoo.search.Searcher;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import net.jcip.annotations.Immutable;
+
+/**
+ * Specifies how a local provider is to be set up.
+ *
+ * @author tonytv
+ */
+@Immutable
+public class LocalProviderSpec {
+ @SuppressWarnings("unchecked")
+ public static final Collection<ChainedComponentModel> searcherModels =
+ toSearcherModels(
+ com.yahoo.prelude.querytransform.CJKSearcher.class,
+ com.yahoo.search.querytransform.NGramSearcher.class,
+ com.yahoo.prelude.querytransform.LiteralBoostSearcher.class,
+ com.yahoo.prelude.querytransform.NormalizingSearcher.class,
+ com.yahoo.prelude.querytransform.StemmingSearcher.class,
+ com.yahoo.search.querytransform.VespaLowercasingSearcher.class,
+ com.yahoo.search.querytransform.DefaultPositionSearcher.class,
+ com.yahoo.search.querytransform.RangeQueryOptimizer.class,
+ com.yahoo.search.querytransform.SortingDegrader.class,
+ com.yahoo.prelude.searcher.ValidateSortingSearcher.class,
+ com.yahoo.prelude.cluster.ClusterSearcher.class,
+ com.yahoo.search.grouping.GroupingValidator.class,
+ com.yahoo.search.grouping.vespa.GroupingExecutor.class,
+ com.yahoo.prelude.querytransform.RecallSearcher.class,
+ com.yahoo.search.querytransform.WandSearcher.class,
+ com.yahoo.search.querytransform.BooleanSearcher.class,
+ com.yahoo.prelude.searcher.ValidatePredicateSearcher.class,
+ com.yahoo.search.searchers.ValidateMatchPhaseSearcher.class,
+ com.yahoo.search.yql.FieldFiller.class,
+ com.yahoo.search.searchers.InputCheckingSearcher.class);
+
+ public final String clusterName;
+
+ //TODO: make this final
+ public Integer cacheSize;
+
+ public LocalProviderSpec(String clusterName, Integer cacheSize) {
+ this.clusterName = clusterName;
+ this.cacheSize = cacheSize;
+
+ if (clusterName == null)
+ throw new IllegalArgumentException("Missing cluster name.");
+ }
+
+ public static boolean includesType(String type) {
+ return "local".equals(type);
+ }
+
+ @SafeVarargs
+ private static final Collection<ChainedComponentModel> toSearcherModels(Class<? extends Searcher>... searchers) {
+ List<ChainedComponentModel> searcherModels = new ArrayList<>();
+
+ for (Class<? extends Searcher> c : searchers) {
+ searcherModels.add(
+ new ChainedComponentModel(
+ BundleInstantiationSpecification.getInternalSearcherSpecificationFromStrings(
+ c.getName(),
+ null),
+ Dependencies.emptyDependencies()));
+ }
+
+ return ImmutableList.copyOf(searcherModels);
+ }
+}