diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-07-12 17:29:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-12 17:29:20 +0200 |
commit | f0dc42821e54ab6ceb2f79d3242300134e690e61 (patch) | |
tree | 7943b9da9e5cf6a8dc3548f8c17dc36ebfe0b8b5 /config-model/src/main/java/com/yahoo | |
parent | 393c46b52cb3580e563d755478481a197522553d (diff) | |
parent | a82fcc5b74a6fb788e29103585779bcae2af5ad7 (diff) |
Merge pull request #23465 from vespa-engine/geirst/summary-transform-for-documentid-fieldsv8.17.19
Add new summary transform for all 'documentid' summary fields.
Diffstat (limited to 'config-model/src/main/java/com/yahoo')
5 files changed, 37 insertions, 6 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java b/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java index 193c6893203..efc64a5aa40 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java @@ -59,7 +59,7 @@ public class SummaryClass extends Derived { /** MUST be called after all other fields are added */ private void deriveImplicitFields(DocumentSummary summary, Map<String, SummaryClassField> fields) { if (summary.getName().equals("default")) { - addField(SummaryClass.DOCUMENT_ID_FIELD, DataType.STRING, fields); + addField(SummaryClass.DOCUMENT_ID_FIELD, DataType.STRING, SummaryTransform.DOCUMENT_ID, fields); } } @@ -72,10 +72,6 @@ public class SummaryClass extends Derived { } } - private void addField(String name, DataType type, Map<String, SummaryClassField> fields) { - addField(name, type, null, fields); - } - private void addField(String name, DataType type, SummaryTransform transform, Map<String, SummaryClassField> fields) { diff --git a/config-model/src/main/java/com/yahoo/schema/processing/AddExtraFieldsToDocument.java b/config-model/src/main/java/com/yahoo/schema/processing/AddExtraFieldsToDocument.java index ca81301da73..471d338a5f6 100644 --- a/config-model/src/main/java/com/yahoo/schema/processing/AddExtraFieldsToDocument.java +++ b/config-model/src/main/java/com/yahoo/schema/processing/AddExtraFieldsToDocument.java @@ -39,6 +39,7 @@ public class AddExtraFieldsToDocument extends Processor { case DYNAMICBOLDED: case DYNAMICTEASER: case TEXTEXTRACTOR: + case DOCUMENT_ID: // TODO: Adding the 'documentid' field should no longer be needed when the docsum framework in the backend has been simplified and the transform is always used. addSummaryField(schema, document, summaryField, validate); break; default: diff --git a/config-model/src/main/java/com/yahoo/schema/processing/Processing.java b/config-model/src/main/java/com/yahoo/schema/processing/Processing.java index 63eca2121c1..8f7e8daeed0 100644 --- a/config-model/src/main/java/com/yahoo/schema/processing/Processing.java +++ b/config-model/src/main/java/com/yahoo/schema/processing/Processing.java @@ -52,6 +52,7 @@ public class Processing { ImplicitSummaries::new, ImplicitSummaryFields::new, AdjustPositionSummaryFields::new, + SummaryTransformForDocumentId::new, SummaryConsistency::new, SummaryNamesFieldCollisions::new, SummaryFieldsMustHaveValidSource::new, diff --git a/config-model/src/main/java/com/yahoo/schema/processing/SummaryTransformForDocumentId.java b/config-model/src/main/java/com/yahoo/schema/processing/SummaryTransformForDocumentId.java new file mode 100644 index 00000000000..99419ecd526 --- /dev/null +++ b/config-model/src/main/java/com/yahoo/schema/processing/SummaryTransformForDocumentId.java @@ -0,0 +1,32 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.schema.processing; + +import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.schema.RankProfileRegistry; +import com.yahoo.schema.Schema; +import com.yahoo.schema.derived.SummaryClass; +import com.yahoo.vespa.documentmodel.SummaryTransform; +import com.yahoo.vespa.model.container.search.QueryProfiles; + +/** + * Adds the corresponding summary transform for all "documentid" summary fields. + * + * @author geirst + */ +public class SummaryTransformForDocumentId extends Processor { + + public SummaryTransformForDocumentId(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); + } + + @Override + public void process(boolean validate, boolean documentsOnly) { + for (var summary : schema.getSummaries().values()) { + for (var summaryField : summary.getSummaryFields().values()) { + if (summaryField.getName().equals(SummaryClass.DOCUMENT_ID_FIELD)) { + summaryField.setTransform(SummaryTransform.DOCUMENT_ID); + } + } + } + } +} diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryTransform.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryTransform.java index a1ebc9e4bec..5c3aef89edc 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryTransform.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryTransform.java @@ -23,7 +23,8 @@ public enum SummaryTransform { ATTRIBUTECOMBINER("attributecombiner"), MATCHED_ELEMENTS_FILTER("matchedelementsfilter"), MATCHED_ATTRIBUTE_ELEMENTS_FILTER("matchedattributeelementsfilter"), - COPY("copy"); + COPY("copy"), + DOCUMENT_ID("documentid"); private final String name; |