summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java157
1 files changed, 0 insertions, 157 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java
deleted file mode 100644
index 590681ffb86..00000000000
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.searchdefinition.processing;
-
-import com.yahoo.config.application.api.DeployLogger;
-import com.yahoo.config.model.api.ModelContext;
-import com.yahoo.document.DataType;
-import com.yahoo.document.Field;
-import com.yahoo.searchdefinition.Index;
-import com.yahoo.searchdefinition.RankProfile;
-import com.yahoo.searchdefinition.RankProfileRegistry;
-import com.yahoo.searchdefinition.Schema;
-import com.yahoo.searchdefinition.document.RankType;
-import com.yahoo.searchdefinition.document.SDField;
-import com.yahoo.searchdefinition.document.Stemming;
-import com.yahoo.vespa.model.container.search.QueryProfiles;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.logging.Level;
-
-/**
- * Abstract superclass of all search definition processors.
- *
- * @author bratseth
- */
-public abstract class Processor {
-
- protected final Schema schema;
- protected final DeployLogger deployLogger;
- protected final RankProfileRegistry rankProfileRegistry;
- protected final QueryProfiles queryProfiles;
-
- /**
- * Base constructor
- *
- * @param schema the search to process
- * @param deployLogger Logger du use when logging deploy output.
- * @param rankProfileRegistry Registry with all rank profiles, used for lookup and insertion.
- * @param queryProfiles The query profiles contained in the application this search is part of.
- */
- public Processor(Schema schema,
- DeployLogger deployLogger,
- RankProfileRegistry rankProfileRegistry,
- QueryProfiles queryProfiles) {
- this.schema = schema;
- this.deployLogger = deployLogger;
- this.rankProfileRegistry = rankProfileRegistry;
- this.queryProfiles = queryProfiles;
- }
-
- /**
- * Processes the input search definition by <b>modifying</b> the input search and its documents, and returns the
- * input search definition.
- *
- * @param validate true to throw exceptions on validation errors, false to make the best possible effort
- * at completing processing without throwing an exception.
- * If we are not validating, emitting warnings have no effect and can (but must not) be skipped.
- * @param documentsOnly true to skip processing (including validation, regardless of the validate setting)
- * of aspects not relating to document definitions (e.g rank profiles)
- */
- public abstract void process(boolean validate, boolean documentsOnly);
-
- /**
- * As above, possibly with properties from a context. Override if needed.
- **/
- public void process(boolean validate, boolean documentsOnly, ModelContext.Properties properties) {
- process(validate, documentsOnly);
- }
-
- /**
- * Convenience method for adding a no-strings-attached implementation field for a regular field
- *
- * @param schema the search definition in question
- * @param field the field to add an implementation field for
- * @param suffix the suffix of the added implementation field (without the underscore)
- * @param indexing the indexing statement of the field
- * @param queryCommand the query command of the original field, or null if none
- * @return the implementation field which is added to the search
- */
- protected SDField addField(Schema schema, SDField field, String suffix, String indexing, String queryCommand) {
- SDField implementationField = schema.getConcreteField(field.getName() + "_" + suffix);
- if (implementationField != null) {
- deployLogger.logApplicationPackage(Level.WARNING, "Implementation field " + implementationField + " added twice");
- } else {
- implementationField = new SDField(schema.getDocument(), field.getName() + "_" + suffix, DataType.STRING);
- }
- implementationField.setRankType(RankType.EMPTY);
- implementationField.setStemming(Stemming.NONE);
- implementationField.getNormalizing().inferCodepoint();
- implementationField.parseIndexingScript(indexing);
- String indexName = field.getName();
- String implementationIndexName = indexName + "_" + suffix;
- Index implementationIndex = new Index(implementationIndexName);
- schema.addIndex(implementationIndex);
- if (queryCommand != null) {
- field.addQueryCommand(queryCommand);
- }
- schema.addExtraField(implementationField);
- schema.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, implementationField.getName());
- return implementationField;
- }
-
- /**
- * Returns an iterator of all the rank settings with given type in all the rank profiles in this search
- * definition.
- */
- protected Iterator<RankProfile.RankSetting> matchingRankSettingsIterator(
- Schema schema, RankProfile.RankSetting.Type type)
- {
- List<RankProfile.RankSetting> someRankSettings = new java.util.ArrayList<>();
-
- for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) {
- for (Iterator j = profile.declaredRankSettingIterator(); j.hasNext(); ) {
- RankProfile.RankSetting setting = (RankProfile.RankSetting)j.next();
- if (setting.getType().equals(type)) {
- someRankSettings.add(setting);
- }
- }
- }
- return someRankSettings.iterator();
- }
-
- protected String formatError(String schemaName, String fieldName, String msg) {
- return "For schema '" + schemaName + "', field '" + fieldName + "': " + msg;
- }
-
- protected RuntimeException newProcessException(String schemaName, String fieldName, String msg) {
- return new IllegalArgumentException(formatError(schemaName, fieldName, msg));
- }
-
- protected RuntimeException newProcessException(Schema schema, Field field, String msg) {
- return newProcessException(schema.getName(), field.getName(), msg);
- }
-
- public void fail(Schema schema, Field field, String msg) {
- throw newProcessException(schema, field, msg);
- }
-
- protected void warn(String schemaName, String fieldName, String message) {
- String fullMsg = formatError(schemaName, fieldName, message);
- deployLogger.logApplicationPackage(Level.WARNING, fullMsg);
- }
-
- protected void warn(Schema schema, Field field, String message) {
- warn(schema.getName(), field.getName(), message);
- }
-
- protected void info(String schemaName, String fieldName, String message) {
- String fullMsg = formatError(schemaName, fieldName, message);
- deployLogger.logApplicationPackage(Level.INFO, fullMsg);
- }
-
- protected void info(Schema schema, Field field, String message) {
- info(schema.getName(), field.getName(), message);
- }
-
-}