]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5364 - added termAnyQuery helper method
authorStephane Gamard <stephane.gamard@searchbox.com>
Thu, 5 Jun 2014 13:17:37 +0000 (15:17 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Thu, 5 Jun 2014 13:18:47 +0000 (15:18 +0200)
sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java
sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java

index 7a92bf65ec597f71e702196ff505a7a295fade96..3bd1a519c3b27ac17c4ba0353c7fa756623ec273 100644 (file)
@@ -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;
 
index d8a9e75aada91242689ba1d78fa0e187f7aa236c..3f10c0c04164b27e722913e9f587cf2c3fad3396 100644 (file)
@@ -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;
   }