summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/MinimalProcessingSearchBuilder.java16
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java3
-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
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java2
-rw-r--r--vespa-documentgen-plugin/etc/complex/video.sd2
-rw-r--r--vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java3
11 files changed, 54 insertions, 17 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/MinimalProcessingSearchBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/MinimalProcessingSearchBuilder.java
new file mode 100644
index 00000000000..1e8f6cb91b9
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/MinimalProcessingSearchBuilder.java
@@ -0,0 +1,16 @@
+package com.yahoo.searchdefinition;
+
+import com.yahoo.config.application.api.DeployLogger;
+import com.yahoo.searchdefinition.processing.MinimalProcessing;
+import com.yahoo.vespa.model.container.search.QueryProfiles;
+
+public class MinimalProcessingSearchBuilder extends SearchBuilder {
+ public MinimalProcessingSearchBuilder() {
+ super();
+ }
+
+ @Override
+ protected void process(Search search, DeployLogger deployLogger, QueryProfiles queryProfiles, boolean validate) {
+ new MinimalProcessing().process(search, deployLogger, getRankProfileRegistry(), queryProfiles, validate);
+ }
+}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java
index 91f86bb1c2a..592efcc2d85 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java
@@ -15,6 +15,7 @@ import com.yahoo.searchdefinition.parser.ParseException;
import com.yahoo.searchdefinition.parser.SDParser;
import com.yahoo.searchdefinition.parser.SimpleCharStream;
import com.yahoo.searchdefinition.parser.TokenMgrException;
+import com.yahoo.searchdefinition.processing.MinimalProcessing;
import com.yahoo.searchdefinition.processing.Processing;
import com.yahoo.vespa.documentmodel.DocumentModel;
import com.yahoo.vespa.model.container.search.QueryProfiles;
@@ -250,7 +251,7 @@ public class SearchBuilder {
* #build()} method so that subclasses can choose not to build anything.
*/
protected void process(Search search, DeployLogger deployLogger, QueryProfiles queryProfiles, boolean validate) {
- Processing.process(search, deployLogger, rankProfileRegistry, queryProfiles, validate);
+ new Processing().process(search, deployLogger, rankProfileRegistry, queryProfiles, validate);
}
/**
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 19025d37f8c..9b4b74d07d8 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,
- ReservedMacroNames::new,
+ ReservedMacroNames::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))
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java
index 274cf06aa37..3ef8591d203 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java
@@ -31,7 +31,7 @@ public class IdTestCase extends AbstractExportingTestCase {
uri.parseIndexingScript("{ summary | index }");
document.addField(uri);
- Processing.process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true);
+ new Processing().process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true);
assertNull(document.getField("uri"));
assertNull(document.getField("Uri"));
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java
index 94d0bf6329a..fad80164135 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java
@@ -41,7 +41,7 @@ public class LiteralBoostTestCase extends AbstractExportingTestCase {
rankProfileRegistry.add(other);
other.addRankSetting(new RankProfile.RankSetting("a", RankProfile.RankSetting.Type.LITERALBOOST, 333));
- Processing.process(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true);
+ new Processing().process(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true);
DerivedConfiguration derived=new DerivedConfiguration(search, rankProfileRegistry, new QueryProfileRegistry(), new ImportedModels());
// Check attribute fields
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java
index 0e02970280e..9d19d4b154c 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java
@@ -76,7 +76,7 @@ public class SummaryMapTestCase extends SearchDefinitionTestCase {
String fieldName = "location";
SDField field = document.addField(fieldName, PositionDataType.INSTANCE);
field.parseIndexingScript("{ attribute | summary }");
- Processing.process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true);
+ new Processing().process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true);
SummaryMap summaryMap = new SummaryMap(search, new Summaries(search, new BaseDeployLogger()));
Iterator transforms = summaryMap.resultTransformIterator();
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java
index 26b100a2d96..17cc9aaae4c 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java
@@ -33,7 +33,7 @@ public class TypeConversionTestCase extends SearchDefinitionTestCase {
a.parseIndexingScript("{ index }");
document.addField(a);
- Processing.process(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true);
+ new Processing().process(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true);
DerivedConfiguration derived = new DerivedConfiguration(search, rankProfileRegistry, new QueryProfileRegistry(), new ImportedModels());
IndexInfo indexInfo = derived.getIndexInfo();
assertFalse(indexInfo.hasCommand("default", "compact-to-term"));
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java
index 876e852aea1..2af3477fa62 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java
@@ -155,7 +155,7 @@ public class IndexingScriptRewriterTestCase extends SearchDefinitionTestCase {
sdoc.addField(unprocessedField);
Search search = new Search("test", null);
search.addDocument(sdoc);
- Processing.process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true);
+ new Processing().process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true);
return unprocessedField.getIndexingScript();
}
diff --git a/vespa-documentgen-plugin/etc/complex/video.sd b/vespa-documentgen-plugin/etc/complex/video.sd
index dbaba54cc45..0b0298a162c 100644
--- a/vespa-documentgen-plugin/etc/complex/video.sd
+++ b/vespa-documentgen-plugin/etc/complex/video.sd
@@ -37,7 +37,7 @@ search video {
rank-profile default {
first-phase {
- expression: nativeRank
+ expression: file:non-existing.expression
}
}
rank-profile rp1 inherits default {
diff --git a/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java b/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java
index acefa3fa461..b7c955bd83b 100644
--- a/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java
+++ b/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java
@@ -7,6 +7,7 @@ import com.yahoo.document.annotation.AnnotationReferenceDataType;
import com.yahoo.document.annotation.AnnotationType;
import com.yahoo.documentmodel.NewDocumentType;
import com.yahoo.documentmodel.VespaDocumentType;
+import com.yahoo.searchdefinition.MinimalProcessingSearchBuilder;
import com.yahoo.searchdefinition.Search;
import com.yahoo.searchdefinition.SearchBuilder;
import com.yahoo.searchdefinition.UnprocessingSearchBuilder;
@@ -110,7 +111,7 @@ public class DocumentGenMojo extends AbstractMojo {
public boolean accept(File dir, String name) {
return name.endsWith(".sd");
}});
- SearchBuilder builder = new SearchBuilder();
+ SearchBuilder builder = new MinimalProcessingSearchBuilder();
for (File f : sdFiles) {
try {
long modTime = f.lastModified();