diff options
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java | 9 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java b/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java index 7a92bf65ec5..3bd1a519c3b 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java @@ -158,7 +158,13 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> { field.field(), field.field() + "." + IndexField.SEARCH_PARTIAL_SUFFIX) .operator(MatchQueryBuilder.Operator.AND) .boost(boost); + } + private QueryBuilder termAnyQuery(IndexField field, String query, float boost) { + return QueryBuilders.multiMatchQuery(query, + field.field(), field.field() + "." + IndexField.SEARCH_PARTIAL_SUFFIX) + .operator(MatchQueryBuilder.Operator.OR) + .boost(boost); } /* Build main query (search based) */ @@ -176,8 +182,11 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> { qb.should(this.termQuery(RuleNormalizer.RuleField.KEY, queryString, 15f)); qb.should(this.termQuery(RuleNormalizer.RuleField.LANGUAGE, queryString, 3f)); qb.should(this.termQuery(RuleNormalizer.RuleField.CHARACTERISTIC, queryString, 5f)); + qb.should(this.termAnyQuery(RuleNormalizer.RuleField.CHARACTERISTIC, queryString, 1f)); qb.should(this.termQuery(RuleNormalizer.RuleField.SUB_CHARACTERISTIC, queryString, 5f)); + qb.should(this.termAnyQuery(RuleNormalizer.RuleField.SUB_CHARACTERISTIC, queryString, 1f)); qb.should(this.termQuery(RuleNormalizer.RuleField._TAGS, queryString, 10f)); + qb.should(this.termAnyQuery(RuleNormalizer.RuleField._TAGS, queryString, 1f)); return qb; diff --git a/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java b/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java index d8a9e75aada..3f10c0c0416 100644 --- a/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java +++ b/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java @@ -324,7 +324,9 @@ public abstract class BaseIndex<DOMAIN, DTO extends Dto<KEY>, KEY extends Serial mapping.put("fields", mapMultiField(field)); } else { mapping.put("type", "string"); - mapping.put("index", "not_analyzed"); + mapping.put("index", "analyzed"); + mapping.put("index_analyzer", "keyword"); + mapping.put("search_analyzer", "whitespace"); } return mapping; } |