diff options
author | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-03-15 14:06:01 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-03-15 14:06:01 +0100 |
commit | 243576011653f6b054c998af4e2ce6600592ca68 (patch) | |
tree | fa4ce70cf1f093adc0005eb86cf8f3bf31365161 /config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java | |
parent | c99c5cddbb3cd18b1ee9aaf72c0f1e4badf594be (diff) |
Process imported fields in config derivers
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java index 9c8f3d7d8dc..ad28fa3add6 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java @@ -48,6 +48,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { derive(search); } + @Override protected void derive(Search search) { super.derive(search); // Derive per field this.search = search; @@ -74,6 +75,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { } } + @Override protected void derive(Index index, Search search) { if (index.getMatchGroup().size() > 0) { addIndexCommand(index.getName(), CMD_MATCH_GROUP + toSpaceSeparated(index.getMatchGroup())); @@ -91,7 +93,8 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { return b.toString(); } - protected void derive(SDField field, Search search) { + @Override + protected void derive(ImmutableSDField field, Search search) { if (field.getDataType().equals(DataType.PREDICATE)) { Index index = field.getIndex(field.getName()); if (index != null) { @@ -111,7 +114,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { addIndexAlias(alias, name); } if (field.usesStructOrMap()) { - for (SDField structField : field.getStructFields()) { + for (ImmutableSDField structField : field.getStructFields()) { derive(structField, search); // Recursion } } @@ -164,25 +167,25 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { } - static String stemCmd(SDField field, Search search) { + static String stemCmd(ImmutableSDField field, Search search) { return CMD_STEM + ":" + field.getStemming(search).toStemMode(); } - private boolean stemSomehow(SDField field, Search search) { + private boolean stemSomehow(ImmutableSDField field, Search search) { if (field.getStemming(search).equals(Stemming.NONE)) return false; return isTypeOrNested(field, DataType.STRING); } - private boolean normalizeAccents(SDField field) { + private boolean normalizeAccents(ImmutableSDField field) { return field.getNormalizing().doRemoveAccents() && isTypeOrNested(field, DataType.STRING); } - private boolean isTypeOrNested(SDField field, DataType type) { + private boolean isTypeOrNested(ImmutableSDField field, DataType type) { return field.getDataType().equals(type) || field.getDataType().equals(DataType.getArray(type)) || field.getDataType().equals(DataType.getWeightedSet(type)); } - private boolean isUriField(Field field) { + private boolean isUriField(ImmutableSDField field) { DataType fieldType = field.getDataType(); if (DataType.URI.equals(fieldType)) { return true; @@ -195,7 +198,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { return false; } - private void addUriIndexCommands(SDField field) { + private void addUriIndexCommands(ImmutableSDField field) { String fieldName = field.getName(); addIndexCommand(fieldName, CMD_FULLURL); addIndexCommand(fieldName, CMD_LOWERCASE); @@ -225,14 +228,14 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { /** * Sets a command for all indices of a field */ - private void addIndexCommand(SDField field, String command) { + private void addIndexCommand(ImmutableSDField field, String command) { addIndexCommand(field, command, null); } /** * Sets a command for all indices of a field */ - private void addIndexCommand(SDField field, String command, IndexOverrider overrider) { + private void addIndexCommand(ImmutableSDField field, String command, IndexOverrider overrider) { if (overrider == null || !overrider.override(field.getName(), command, field)) { addIndexCommand(field.getName(), command); } @@ -417,7 +420,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { return false; } - private Stemming getEffectiveStemming(SDField field) { + private Stemming getEffectiveStemming(ImmutableSDField field) { Stemming active = field.getStemming(search); if (field.getIndex(field.getName()) != null) { if (field.getIndex(field.getName()).getStemming()!=null) { @@ -447,7 +450,8 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { if (m.getType().equals(Matching.Type.WORD)) return true; return false; } - + + @Override protected String getDerivedName() { return "index-info"; } @@ -518,7 +522,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { * Override the setting of this index for this field, returns true if overriden, false if this index should be * set according to the field */ - public abstract boolean override(String indexName, String command, SDField field); + public abstract boolean override(String indexName, String command, ImmutableSDField field); } @@ -531,7 +535,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { this.search = search; } - public boolean override(String indexName, String command, SDField field) { + public boolean override(String indexName, String command, ImmutableSDField field) { if (search == null) { return false; } |