diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /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.java | 79 |
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); + } +} |