diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-19 00:20:14 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-20 11:01:11 +0200 |
commit | cf97c2df72bc8aa0bc4d71128d873df835cfd07a (patch) | |
tree | 86cced6a5dd353f20bc4912c8a879e50919287f5 /config-model | |
parent | f044ae06cb46c2d46eb8b1605bfc687fcb57115b (diff) |
Produce attribute config also for streaming clusters for the fast-access fields
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java | 28 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java | 4 |
2 files changed, 21 insertions, 11 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java index d1bb090a797..9f9a93caf97 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java @@ -32,8 +32,13 @@ public class AttributeFields extends Derived implements AttributesConfig.Produce * Flag indicating if a position-attribute has been found */ private boolean hasPosition = false; + private final boolean needOnlyFastAccess; public AttributeFields(Search search) { + this(search, false); + } + public AttributeFields(Search search, boolean onlyFastAccess) { + needOnlyFastAccess = onlyFastAccess; derive(search); } @@ -65,20 +70,25 @@ public class AttributeFields extends Derived implements AttributesConfig.Produce return getAttribute(attributeName) != null; } + private void deriveAttribute(ImmutableSDField field, Attribute fieldAttribute) { + Attribute attribute = getAttribute(fieldAttribute.getName()); + if (attribute == null) { + attributes.put(fieldAttribute.getName(), fieldAttribute); + attribute = getAttribute(fieldAttribute.getName()); + } + Ranking ranking = field.getRanking(); + if (ranking != null && ranking.isFilter()) { + attribute.setEnableBitVectors(true); + attribute.setEnableOnlyBitVector(true); + } + } /** * Derives one attribute. TODO: Support non-default named attributes */ private void deriveAttributes(ImmutableSDField field) { for (Attribute fieldAttribute : field.getAttributes().values()) { - Attribute attribute = getAttribute(fieldAttribute.getName()); - if (attribute == null) { - attributes.put(fieldAttribute.getName(), fieldAttribute); - attribute = getAttribute(fieldAttribute.getName()); - } - Ranking ranking = field.getRanking(); - if (ranking != null && ranking.isFilter()) { - attribute.setEnableBitVectors(true); - attribute.setEnableOnlyBitVector(true); + if (fieldAttribute.isFastAccess() || !needOnlyFastAccess) { + deriveAttribute(field, fieldAttribute); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java index 2aac1de5137..108715f96fc 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java @@ -78,11 +78,11 @@ public class DerivedConfiguration { } } } - if (!search.isDocumentsOnly()) { + attributeFields = new AttributeFields(search, search.isDocumentsOnly()); + if ( ! search.isDocumentsOnly()) { summaries = new Summaries(search, deployLogger); summaryMap = new SummaryMap(search, summaries); juniperrc = new Juniperrc(search); - attributeFields = new AttributeFields(search); rankProfileList = new RankProfileList(search, attributeFields, rankProfileRegistry); indexingScript = new IndexingScript(search); indexInfo = new IndexInfo(search); |