summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/processing
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-09-18 03:59:48 -0700
committerJon Bratseth <bratseth@oath.com>2018-09-18 03:59:48 -0700
commit17dc219ade1c241f7e40d5e0942d291219439792 (patch)
tree2bf12f1cf62479a76a682f972b6de91fc8e2dc84 /config-model/src/main/java/com/yahoo/searchdefinition/processing
parentd382242496bc164c2eddd9e5d0d00c107a90eb9c (diff)
parent59f42ff1e807e60361d13663e4039038cd239120 (diff)
Merge with master
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/MinimalProcessing.java10
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java27
2 files changed, 28 insertions, 9 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MinimalProcessing.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MinimalProcessing.java
new file mode 100644
index 00000000000..0fee844ecbc
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MinimalProcessing.java
@@ -0,0 +1,10 @@
+package com.yahoo.searchdefinition.processing;
+
+import java.util.Collection;
+
+public class MinimalProcessing extends Processing {
+ @Override
+ protected Collection<ProcessorFactory> createProcessorFactories() {
+ return minimalSetOfProcessors();
+ }
+}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java
index fdef93e21ed..d92979f3ae4 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java
@@ -7,7 +7,9 @@ import com.yahoo.searchdefinition.Search;
import com.yahoo.searchdefinition.processing.multifieldresolver.RankProfileTypeSettingsProcessor;
import com.yahoo.vespa.model.container.search.QueryProfiles;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.List;
/**
@@ -18,9 +20,7 @@ import java.util.List;
*/
public class Processing {
- private static final List<ProcessorFactory> factories = createProcessorFactories();
-
- private static List<ProcessorFactory> createProcessorFactories() {
+ protected Collection<ProcessorFactory> minimalSetOfProcessors() {
return Arrays.asList(
SearchMustHaveDocument::new,
UrlFieldValidator::new,
@@ -74,7 +74,11 @@ public class Processing {
RankProfileTypeSettingsProcessor::new,
ReferenceFieldsProcessor::new,
FastAccessValidator::new,
- ReservedFunctionNames::new,
+ ReservedFunctionNames::new);
+ }
+
+ private Collection<ProcessorFactory> extendedSetOfProcessors() {
+ return Arrays.asList(
RankingExpressionTypeValidator::new,
// These should be last.
@@ -82,6 +86,12 @@ public class Processing {
IndexingValues::new);
}
+ protected Collection<ProcessorFactory> createProcessorFactories() {
+ List<ProcessorFactory> processorFactories = new ArrayList<>(minimalSetOfProcessors());
+ processorFactories.addAll(extendedSetOfProcessors());
+ return processorFactories;
+ }
+
/**
* Runs all search processors on the given {@link Search} object. These will modify the search object, <b>possibly
* exchanging it with another</b>, as well as its document types.
@@ -91,11 +101,10 @@ public class Processing {
* @param rankProfileRegistry a {@link com.yahoo.searchdefinition.RankProfileRegistry}
* @param queryProfiles The query profiles contained in the application this search is part of.
*/
- public static void process(Search search,
- DeployLogger deployLogger,
- RankProfileRegistry rankProfileRegistry,
- QueryProfiles queryProfiles,
- boolean validate) {
+ public void process(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry,
+ QueryProfiles queryProfiles, boolean validate)
+ {
+ Collection<ProcessorFactory> factories = createProcessorFactories();
search.process();
factories.stream()
.map(factory -> factory.create(search, deployLogger, rankProfileRegistry, queryProfiles))