From 4ea58ca191cbd6941821f34164774c978fa36e43 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 16 May 2014 18:59:24 +0200 Subject: [PATCH] SONAR-5007 - baseIndex supporting routing within ES 1.1.1 --- .../org/sonar/server/search/BaseIndex.java | 11 ++++--- .../java/org/sonar/server/search/Result.java | 32 ++++--------------- 2 files changed, 13 insertions(+), 30 deletions(-) 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 ed28ad4a5f8..fa67533102f 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 @@ -148,10 +148,12 @@ public abstract class BaseIndex, K extends Serializable> public abstract D toDoc(GetResponse response); - public D getByKey(K key) { - return toDoc(getClient().prepareGet(this.getIndexName(), - this.indexDefinition.getIndexType(), this.getKeyValue(key)) + return toDoc(getClient().prepareGet() + .setType(this.getIndexType()) + .setIndex(this.getIndexName()) + .setId(this.getKeyValue(key)) + .setRouting(this.getKeyValue(key)) .get()); } @@ -203,7 +205,6 @@ public abstract class BaseIndex, K extends Serializable> .index(this.getIndexName()) .id(this.getKeyValue(key)) .type(this.getIndexType())).get(); - } @@ -213,7 +214,7 @@ public abstract class BaseIndex, K extends Serializable> this.updateDocument(this.normalizer.normalizeOther(obj, key), key); } else { throw new IllegalStateException("Index " + this.getIndexName() + - " cannot execute INSERT for class: " + obj.getClass()); + " cannot execute UPDATE for class: " + obj.getClass()); } } diff --git a/sonar-server/src/main/java/org/sonar/server/search/Result.java b/sonar-server/src/main/java/org/sonar/server/search/Result.java index 859c4a7e24a..2b208a7a0c3 100644 --- a/sonar-server/src/main/java/org/sonar/server/search/Result.java +++ b/sonar-server/src/main/java/org/sonar/server/search/Result.java @@ -28,30 +28,31 @@ import org.elasticsearch.search.facet.terms.TermsFacet; import javax.annotation.CheckForNull; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -public abstract class Result { +public abstract class Result { private final List hits; private final Map> facets; - private final long total; - private final long timeInMillis; + private long total; + private long timeInMillis; + public Result(SearchResponse response) { this.hits = new ArrayList(); + this.facets = new HashMap>(); + this.total = (int) response.getHits().totalHits(); this.timeInMillis = response.getTookInMillis(); for (SearchHit hit : response.getHits()) { - this.hits.add(getSearchResult(hit)); + this.hits.add(getSearchResult(hit.getSource())); } if (response.getFacets() != null && !response.getFacets().facets().isEmpty()) { - this.facets = new HashMap>(); for (Facet facet : response.getFacets().facets()) { TermsFacet termFacet = (TermsFacet) facet; List facetValues = new ArrayList(); @@ -61,19 +62,12 @@ public abstract class Result { } this.facets.put(facet.getName(), facetValues); } - } else { - this.facets = Collections.emptyMap(); } } /* Transform Methods */ - protected abstract K getSearchResult(Map fields); - protected K getSearchResult(SearchHit hit) { - return this.getSearchResult(hit.getSource()); - } - public List getHits() { return hits; } @@ -107,18 +101,6 @@ public abstract class Result { return null; } - @CheckForNull - public Object getFacetTermValue(String facetName, String key) { - if (this.facets.containsKey(facetName)) { - for (FacetValue facetValue : facets.get(facetName)) { - if (facetValue.getKey().equals(key)) { - return facetValue.getValue(); - } - } - } - return null; - } - @Override public String toString() { return ReflectionToStringBuilder.toString(this); -- 2.39.5