From 8381a3bab175e93cd37c340fbeb04e99a9d2a94e Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Mon, 17 Jul 2017 11:42:10 +0200 Subject: [PATCH] SONAR-8798 term_vector must be enabled for hightlighting on field too and not only on searcheable subfields --- .../component/index/ComponentIndexDefinition.java | 2 +- .../java/org/sonar/server/es/DefaultIndexSettings.java | 1 + .../src/main/java/org/sonar/server/es/NewIndex.java | 10 ++++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexDefinition.java b/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexDefinition.java index 2f77d3a5f53..8cf458879bb 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexDefinition.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndexDefinition.java @@ -63,7 +63,7 @@ public class ComponentIndexDefinition implements IndexDefinition { mapping.keywordFieldBuilder(FIELD_KEY).addSubFields(SORTABLE_ANALYZER).build(); mapping.textFieldBuilder(FIELD_NAME) .withFieldData() - .termVectorWithPositionOffsetsForAllSubfields() + .termVectorWithPositionOffsets() .addSubFields(NAME_ANALYZERS) .build(); diff --git a/server/sonar-server/src/main/java/org/sonar/server/es/DefaultIndexSettings.java b/server/sonar-server/src/main/java/org/sonar/server/es/DefaultIndexSettings.java index baf7959c3b4..71d27234025 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/es/DefaultIndexSettings.java +++ b/server/sonar-server/src/main/java/org/sonar/server/es/DefaultIndexSettings.java @@ -50,6 +50,7 @@ public class DefaultIndexSettings { public static final String FIELD_TYPE_KEYWORD = "keyword"; public static final String FIELD_FIELDDATA = "fielddata"; public static final String FIELDDATA_ENABLED = "true"; + public static final String FIELD_TERM_VECTOR = "term_vector"; public static final String STANDARD = "standard"; public static final String PATTERN = "pattern"; public static final String CUSTOM = "custom"; diff --git a/server/sonar-server/src/main/java/org/sonar/server/es/NewIndex.java b/server/sonar-server/src/main/java/org/sonar/server/es/NewIndex.java index cc672e4345a..8ac99bc3bb2 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/es/NewIndex.java +++ b/server/sonar-server/src/main/java/org/sonar/server/es/NewIndex.java @@ -41,6 +41,7 @@ import static java.lang.String.format; import static org.sonar.server.es.DefaultIndexSettings.ANALYZER; import static org.sonar.server.es.DefaultIndexSettings.FIELDDATA_ENABLED; import static org.sonar.server.es.DefaultIndexSettings.FIELD_FIELDDATA; +import static org.sonar.server.es.DefaultIndexSettings.FIELD_TERM_VECTOR; import static org.sonar.server.es.DefaultIndexSettings.FIELD_TYPE_KEYWORD; import static org.sonar.server.es.DefaultIndexSettings.FIELD_TYPE_TEXT; import static org.sonar.server.es.DefaultIndexSettings.INDEX; @@ -248,7 +249,7 @@ public class NewIndex { /** * Position offset term vectors are required for the fast_vector_highlighter (fvh). */ - public StringFieldBuilder termVectorWithPositionOffsetsForAllSubfields() { + public StringFieldBuilder termVectorWithPositionOffsets() { this.termVectorWithPositionOffsets = true; return this; } @@ -289,11 +290,12 @@ public class NewIndex { Object subFieldMapping = entry.getValue(); if (subFieldMapping instanceof Map) { entry.setValue( - addFieldToMapping( - (Map) subFieldMapping, - "term_vector", "with_positions_offsets")); + addFieldToMapping( + (Map) subFieldMapping, + FIELD_TERM_VECTOR, "with_positions_offsets")); } }); + hash.put(FIELD_TERM_VECTOR, "with_positions_offsets"); } if (getFieldData()) { multiFields.entrySet().forEach(entry -> { -- 2.39.5