aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-04-06 12:02:43 +0000
committerArne H Juul <arnej@yahooinc.com>2022-04-06 12:20:46 +0000
commit3c1ab5dfa117f97e1bcb1c81b9f92ad11e463e7e (patch)
tree20627a49cd7eea8ac06bcef4117d16721ce75e34 /config-model
parent9ef8c6468cbce1d83d20ebbd348e626370a2ae4b (diff)
support rank: filter in struct-field block
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java5
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java18
-rw-r--r--config-model/src/main/javacc/IntermediateParser.jj1
3 files changed, 15 insertions, 9 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 dad8385e0e1..f3ac7a59549 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
@@ -134,6 +134,11 @@ public class AttributeFields extends Derived implements AttributesConfig.Produce
}
Attribute attribute = field.getAttributes().get(field.getName());
if (attribute != null) {
+ Ranking ranking = field.getRanking();
+ if (ranking != null && ranking.isFilter()) {
+ attribute.setEnableBitVectors(true);
+ attribute.setEnableOnlyBitVector(true);
+ }
attributes.put(attribute.getName(), attribute.convertToArray());
}
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java
index dee9b648228..92e099bc1fe 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java
@@ -159,6 +159,15 @@ public class ConvertParsedFields {
for (var structField : parsed.getStructFields()) {
convertStructField(field, structField);
}
+ if (parsed.hasLiteral()) {
+ field.getRanking().setLiteral(true);
+ }
+ if (parsed.hasFilter()) {
+ field.getRanking().setFilter(true);
+ }
+ if (parsed.hasNormal()) {
+ field.getRanking().setNormal(true);
+ }
}
private void convertStructField(SDField field, ParsedField parsed) {
@@ -196,15 +205,6 @@ public class ConvertParsedFields {
summaryField.addDestination("default");
summaryField.setTransform(summaryField.getTransform().bold());
}
- if (parsed.hasLiteral()) {
- field.getRanking().setLiteral(true);
- }
- if (parsed.hasFilter()) {
- field.getRanking().setFilter(true);
- }
- if (parsed.hasNormal()) {
- field.getRanking().setNormal(true);
- }
}
static void convertSummaryFieldSettings(SummaryField summary, ParsedSummaryField parsed) {
diff --git a/config-model/src/main/javacc/IntermediateParser.jj b/config-model/src/main/javacc/IntermediateParser.jj
index 6119eb5e2ce..4815aba0903 100644
--- a/config-model/src/main/javacc/IntermediateParser.jj
+++ b/config-model/src/main/javacc/IntermediateParser.jj
@@ -935,6 +935,7 @@ void structFieldBody(ParsedField field) : { }
attribute(field) |
matchSettings(field.matchSettings()) |
queryCommand(field) |
+ rank(field) |
structField(field) |
summaryTo(field) )
}