diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java index 207edbe62ae..e872efa4138 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java @@ -707,7 +707,6 @@ public class ElasticSearchClient implements SearchClient { throws IOException { Set> edges = new HashSet<>(); Set> nodes = new HashSet<>(); - responseMap.put("entity", null); es.org.elasticsearch.action.search.SearchRequest searchRequest = new es.org.elasticsearch.action.search.SearchRequest(GLOBAL_SEARCH_ALIAS); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); @@ -767,6 +766,22 @@ public class ElasticSearchClient implements SearchClient { } } } + // TODO: Fix this , this is hack + if (edges.isEmpty()) { + es.org.elasticsearch.action.search.SearchRequest searchRequestForEntity = + new es.org.elasticsearch.action.search.SearchRequest(GLOBAL_SEARCH_ALIAS); + SearchSourceBuilder searchSourceBuilderForEntity = new SearchSourceBuilder(); + searchSourceBuilderForEntity.query( + QueryBuilders.boolQuery().must(QueryBuilders.termQuery("fullyQualifiedName", fqn))); + searchRequestForEntity.source(searchSourceBuilderForEntity.size(1000)); + SearchResponse searchResponseForEntity = + client.search(searchRequestForEntity, RequestOptions.DEFAULT); + for (var hit : searchResponseForEntity.getHits().getHits()) { + HashMap tempMap = new HashMap<>(JsonUtils.getMap(hit.getSourceAsMap())); + tempMap.keySet().removeAll(FIELDS_TO_REMOVE); + responseMap.put("entity", tempMap); + } + } responseMap.put("edges", edges); responseMap.put("nodes", nodes); return Response.status(OK).entity(responseMap).build(); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java index 27be2714b51..59bd9af6df4 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java @@ -770,6 +770,21 @@ public class OpenSearchClient implements SearchClient { } } } + if (edges.isEmpty()) { + os.org.opensearch.action.search.SearchRequest searchRequestForEntity = + new os.org.opensearch.action.search.SearchRequest(GLOBAL_SEARCH_ALIAS); + SearchSourceBuilder searchSourceBuilderForEntity = new SearchSourceBuilder(); + searchSourceBuilderForEntity.query( + QueryBuilders.boolQuery().must(QueryBuilders.termQuery("fullyQualifiedName", fqn))); + searchRequestForEntity.source(searchSourceBuilderForEntity.size(1000)); + SearchResponse searchResponseForEntity = + client.search(searchRequestForEntity, RequestOptions.DEFAULT); + for (var hit : searchResponseForEntity.getHits().getHits()) { + HashMap tempMap = new HashMap<>(JsonUtils.getMap(hit.getSourceAsMap())); + tempMap.keySet().removeAll(FIELDS_TO_REMOVE); + responseMap.put("entity", tempMap); + } + } responseMap.put("edges", edges); responseMap.put("nodes", nodes); return Response.status(OK).entity(responseMap).build();