diff options
author | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-06-05 15:17:37 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-06-05 15:18:47 +0200 |
commit | 962227e16e22c3c6b9f6f3ab234b919c88597a53 (patch) | |
tree | fc4312dda59538a712178ebc66721250f17faa35 | |
parent | 0d72c0223dfb519293948a2666df5466ec208652 (diff) | |
download | sonarqube-962227e16e22c3c6b9f6f3ab234b919c88597a53.tar.gz sonarqube-962227e16e22c3c6b9f6f3ab234b919c88597a53.zip |
SONAR-5364 - added termAnyQuery helper method
-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; } |