diff --git a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java index 14e71277fecb75da190c0acc325a2e15fa04049e..3e79db3d9da992df317cf182239caaffde1e8755 100644 --- a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java +++ b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java @@ -218,6 +218,15 @@ public class ElasticSearchClient implements Client { return client.get(request); } + public SearchResponse idQuery(String indexName, String id) throws IOException { + indexName = formatIndexName(indexName); + + SearchRequest searchRequest = new SearchRequest(indexName); + searchRequest.types(TYPE); + searchRequest.source().query(QueryBuilders.idsQuery().addIds(id)); + return client.search(searchRequest); + } + public Map> ids(String indexName, String... ids) throws IOException { indexName = formatIndexName(indexName); diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java index 82bed926d3e7bc816d78d4847820aac1f552880c..e313c6012a491d678c21aadbb6b242a692802d08 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java @@ -23,8 +23,8 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics; import org.apache.skywalking.oap.server.core.storage.*; import org.apache.skywalking.oap.server.core.storage.model.Model; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; -import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexRequest; +import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.common.xcontent.XContentBuilder; @@ -41,10 +41,9 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO 0) { + return storageBuilder.map2Data(response.getHits().getAt(0).getSourceAsMap()); } else { return null; }