summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-04-19 00:20:14 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-04-20 11:01:11 +0200
commitcf97c2df72bc8aa0bc4d71128d873df835cfd07a (patch)
tree86cced6a5dd353f20bc4912c8a879e50919287f5 /config-model
parentf044ae06cb46c2d46eb8b1605bfc687fcb57115b (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.java28
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java4
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);