Skip to content

Commit a17662c

Browse files
Reduced version to 3.4 (#26017)
Co-authored-by: Sid <30566406+siddhant1@users.noreply.github.com> (cherry picked from commit eb74b95)
1 parent 41df97c commit a17662c

7 files changed

Lines changed: 43 additions & 178 deletions

File tree

openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchAggregationManager.java

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,6 @@ public OpenSearchAggregationManager(
6262
mapper = new ObjectMapper();
6363
}
6464

65-
private SearchResponse<JsonData> searchWithLenientDeserialization(SearchRequest request)
66-
throws IOException {
67-
return OsUtils.searchWithLenientDeserialization(client, request);
68-
}
69-
7065
private String praseJsonQuery(String jsonQuery) throws JsonProcessingException {
7166
JsonNode rootNode = mapper.readTree(jsonQuery);
7267
String queryToProcess = jsonQuery;
@@ -184,15 +179,13 @@ public Response aggregate(AggregationRequest request) throws IOException {
184179
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
185180
SearchResponse<JsonData> searchResponse;
186181
try {
187-
searchResponse = searchWithLenientDeserialization(searchRequestBuilder.build());
182+
searchResponse = client.search(searchRequestBuilder.build(), JsonData.class);
188183
} finally {
189184
if (searchTimerSample != null) {
190185
RequestLatencyContext.endSearchOperation(searchTimerSample);
191186
}
192187
}
193-
return Response.status(Response.Status.OK)
194-
.entity(OsUtils.toJsonStringLenient(searchResponse))
195-
.build();
188+
return Response.status(Response.Status.OK).entity(searchResponse.toJsonString()).build();
196189
} catch (Exception e) {
197190
LOG.error("Failed to execute aggregation", e);
198191
throw new IOException("Failed to execute aggregation: " + e.getMessage(), e);
@@ -236,14 +229,14 @@ public DataQualityReport genericAggregation(
236229
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
237230
SearchResponse<JsonData> searchResponse;
238231
try {
239-
searchResponse = searchWithLenientDeserialization(searchRequestBuilder.build());
232+
searchResponse = client.search(searchRequestBuilder.build(), JsonData.class);
240233
} finally {
241234
if (searchTimerSample != null) {
242235
RequestLatencyContext.endSearchOperation(searchTimerSample);
243236
}
244237
}
245238

246-
String response = OsUtils.toJsonStringLenient(searchResponse);
239+
String response = searchResponse.toJsonString();
247240
JsonObject jsonResponse = JsonUtils.readJson(response).asJsonObject();
248241
Optional<JsonObject> aggregationResults =
249242
Optional.ofNullable(jsonResponse.getJsonObject("aggregations"));
@@ -322,14 +315,14 @@ public DataQualityReport genericAggregation(
322315
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
323316
SearchResponse<JsonData> searchResponse;
324317
try {
325-
searchResponse = searchWithLenientDeserialization(searchRequestBuilder.build());
318+
searchResponse = client.search(searchRequestBuilder.build(), JsonData.class);
326319
} finally {
327320
if (searchTimerSample != null) {
328321
RequestLatencyContext.endSearchOperation(searchTimerSample);
329322
}
330323
}
331324

332-
String response = OsUtils.toJsonStringLenient(searchResponse);
325+
String response = searchResponse.toJsonString();
333326
JsonObject jsonResponse = JsonUtils.readJson(response).asJsonObject();
334327
Optional<JsonObject> aggregationResults =
335328
Optional.ofNullable(jsonResponse.getJsonObject("aggregations"));
@@ -406,14 +399,14 @@ public JsonObject aggregate(
406399
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
407400
SearchResponse<JsonData> searchResponse;
408401
try {
409-
searchResponse = searchWithLenientDeserialization(searchRequestBuilder.build());
402+
searchResponse = client.search(searchRequestBuilder.build(), JsonData.class);
410403
} finally {
411404
if (searchTimerSample != null) {
412405
RequestLatencyContext.endSearchOperation(searchTimerSample);
413406
}
414407
}
415408

416-
String response = OsUtils.toJsonStringLenient(searchResponse);
409+
String response = searchResponse.toJsonString();
417410
JsonObject jsonResponse = JsonUtils.readJson(response).asJsonObject();
418411
return jsonResponse.getJsonObject("aggregations");
419412
} catch (Exception e) {
@@ -500,7 +493,7 @@ public Response getEntityTypeCounts(
500493
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
501494
SearchResponse<JsonData> searchResponse;
502495
try {
503-
searchResponse = searchWithLenientDeserialization(searchRequest);
496+
searchResponse = client.search(searchRequest, JsonData.class);
504497
} finally {
505498
if (searchTimerSample != null) {
506499
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -509,7 +502,8 @@ public Response getEntityTypeCounts(
509502

510503
LOG.info("Entity type counts query for index '{}' (resolved: '{}')", index, resolvedIndex);
511504

512-
String jsonResponse = OsUtils.toJsonStringLenient(searchResponse);
505+
// Serialize response
506+
String jsonResponse = searchResponse.toJsonString();
513507
return Response.status(Response.Status.OK).entity(jsonResponse).build();
514508

515509
} catch (Exception e) {

openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,6 @@ public OpenSearchClient(ElasticSearchConfiguration config) {
105105
}
106106

107107
public OpenSearchClient(ElasticSearchConfiguration config, NLQService nlqService) {
108-
OsUtils.installLenientDeserializers();
109-
110108
AwsConfiguration awsConfig = config != null ? config.getAws() : null;
111109
boolean useIamAuth = isAwsIamAuthEnabled(awsConfig);
112110

openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchColumnAggregator.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,7 @@ private Set<String> fetchEntityColumnPairsWithTags(Query query, Set<String> targ
217217
SearchRequest searchRequest =
218218
SearchRequest.of(s -> s.index(resolvedIndexes).query(query).size(10000));
219219

220-
SearchResponse<JsonData> response =
221-
OsUtils.searchWithLenientDeserialization(client, searchRequest);
220+
SearchResponse<JsonData> response = client.search(searchRequest, JsonData.class);
222221

223222
long totalHits = response.hits().total() != null ? response.hits().total().value() : 0;
224223
LOG.info(
@@ -568,7 +567,7 @@ private SearchResponse<JsonData> executeSearch(ColumnAggregationRequest request,
568567
SearchRequest searchRequest =
569568
SearchRequest.of(s -> s.index(resolveIndexNames()).query(query).aggregations(aggs).size(0));
570569

571-
return OsUtils.searchWithLenientDeserialization(client, searchRequest);
570+
return client.search(searchRequest, JsonData.class);
572571
}
573572

574573
private Map<String, List<ColumnWithContext>> parseAggregationResults(
@@ -849,8 +848,7 @@ private Map<String, Long> getTotalCounts(Query query) throws IOException {
849848
SearchRequest countRequest =
850849
SearchRequest.of(s -> s.index(resolveIndexNames()).query(query).aggregations(aggs).size(0));
851850

852-
SearchResponse<JsonData> countResponse =
853-
OsUtils.searchWithLenientDeserialization(client, countRequest);
851+
SearchResponse<JsonData> countResponse = client.search(countRequest, JsonData.class);
854852

855853
long uniqueColumns = 0;
856854
long totalOccurrences = 0;

openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchDataInsightAggregatorManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public DataInsightCustomChartResultList buildDIChart(
8181
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
8282
SearchResponse<JsonData> searchResponse;
8383
try {
84-
searchResponse = OsUtils.searchWithLenientDeserialization(client, searchRequest);
84+
searchResponse = client.search(searchRequest, JsonData.class);
8585
} finally {
8686
if (searchTimerSample != null) {
8787
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -158,7 +158,7 @@ public Response listDataInsightChartResult(
158158
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
159159
SearchResponse<JsonData> searchResponse;
160160
try {
161-
searchResponse = OsUtils.searchWithLenientDeserialization(client, searchRequest);
161+
searchResponse = client.search(searchRequest, JsonData.class);
162162
} finally {
163163
if (searchTimerSample != null) {
164164
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -180,7 +180,7 @@ public QueryCostSearchResult getQueryCostRecords(String serviceName) throws IOEx
180180
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
181181
SearchResponse<JsonData> searchResponse;
182182
try {
183-
searchResponse = OsUtils.searchWithLenientDeserialization(client, searchRequest);
183+
searchResponse = client.search(searchRequest, JsonData.class);
184184
} finally {
185185
if (searchTimerSample != null) {
186186
RequestLatencyContext.endSearchOperation(searchTimerSample);

openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchSearchManager.java

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,6 @@ public OpenSearchSearchManager(
131131
this.nlqService = nlqService;
132132
}
133133

134-
private SearchResponse<JsonData> searchWithLenientDeserialization(SearchRequest request)
135-
throws IOException {
136-
return OsUtils.searchWithLenientDeserialization(client, request);
137-
}
138-
139134
@Override
140135
public Response search(
141136
org.openmetadata.schema.search.SearchRequest request, SubjectContext subjectContext)
@@ -178,13 +173,13 @@ public Response searchBySourceUrl(String sourceUrl) throws IOException {
178173
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
179174
SearchResponse<JsonData> response;
180175
try {
181-
response = searchWithLenientDeserialization(searchRequest);
176+
response = client.search(searchRequest, JsonData.class);
182177
} finally {
183178
if (searchTimerSample != null) {
184179
RequestLatencyContext.endSearchOperation(searchTimerSample);
185180
}
186181
}
187-
return Response.status(OK).entity(OsUtils.toJsonStringLenient(response)).build();
182+
return Response.status(OK).entity(response.toJsonString()).build();
188183
}
189184

190185
@Override
@@ -216,13 +211,13 @@ public Response searchByField(String fieldName, String fieldValue, String index,
216211
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
217212
SearchResponse<JsonData> response;
218213
try {
219-
response = searchWithLenientDeserialization(searchRequest);
214+
response = client.search(searchRequest, JsonData.class);
220215
} finally {
221216
if (searchTimerSample != null) {
222217
RequestLatencyContext.endSearchOperation(searchTimerSample);
223218
}
224219
}
225-
return Response.status(OK).entity(OsUtils.toJsonStringLenient(response)).build();
220+
return Response.status(OK).entity(response.toJsonString()).build();
226221
}
227222

228223
@Override
@@ -303,7 +298,7 @@ private SearchResultListMapper doListWithOffset(
303298
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
304299
SearchResponse<JsonData> response;
305300
try {
306-
response = searchWithLenientDeserialization(searchRequest);
301+
response = client.search(searchRequest, JsonData.class);
307302
} finally {
308303
if (searchTimerSample != null) {
309304
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -480,7 +475,7 @@ public SearchResultListMapper listWithDeepPagination(
480475
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
481476
SearchResponse<JsonData> response;
482477
try {
483-
response = searchWithLenientDeserialization(searchRequest);
478+
response = client.search(searchRequest, JsonData.class);
484479
} finally {
485480
if (searchTimerSample != null) {
486481
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -574,7 +569,7 @@ public Response searchWithNLQ(
574569
addAggregationsToNLQQuery(requestBuilder, request.getIndex());
575570

576571
SearchResponse<JsonData> response =
577-
searchWithLenientDeserialization(requestBuilder.build(request.getIndex()));
572+
client.search(requestBuilder.build(request.getIndex()), JsonData.class);
578573

579574
// End search operation timing
580575
if (searchTimerSample != null) {
@@ -588,9 +583,7 @@ public Response searchWithNLQ(
588583
nlqService.cacheQuery(request.getQuery(), transformedQuery);
589584
}
590585

591-
return Response.status(Response.Status.OK)
592-
.entity(OsUtils.toJsonStringLenient(response))
593-
.build();
586+
return Response.status(Response.Status.OK).entity(response.toJsonString()).build();
594587
} catch (Exception e) {
595588
LOG.error("Error transforming or executing NLQ query: {}", e.getMessage(), e);
596589
return fallbackToBasicSearch(request, subjectContext);
@@ -649,14 +642,14 @@ public Response searchWithDirectQuery(
649642
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
650643
SearchResponse<JsonData> response;
651644
try {
652-
response = searchWithLenientDeserialization(searchRequest);
645+
response = client.search(searchRequest, JsonData.class);
653646
} finally {
654647
if (searchTimerSample != null) {
655648
RequestLatencyContext.endSearchOperation(searchTimerSample);
656649
}
657650
}
658651

659-
String responseJson = OsUtils.toJsonStringLenient(response);
652+
String responseJson = response.toJsonString();
660653
LOG.debug("Direct query search completed successfully");
661654
return Response.status(Response.Status.OK).entity(responseJson).build();
662655
} catch (Exception e) {
@@ -743,7 +736,7 @@ private void collectNodesAndEdgesForDQ(
743736
SearchResponse<JsonData> searchResponse = performLineageSearchForDQ(fqn, queryFilter, deleted);
744737
Optional<List> optionalDocs =
745738
JsonUtils.readJsonAtPath(
746-
OsUtils.toJsonStringLenient(searchResponse), "$.hits.hits[*]._source", List.class);
739+
searchResponse.toJsonString(), "$.hits.hits[*]._source", List.class);
747740

748741
if (optionalDocs.isPresent()) {
749742
List<Map<String, Object>> docs = (List<Map<String, Object>>) optionalDocs.get();
@@ -848,9 +841,7 @@ private SearchResponse<JsonData> performLineageSearchForDQ(
848841

849842
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
850843
try {
851-
SearchRequest searchRequest =
852-
SearchRequest.of(s -> s.index(indexName).query(boolQuery).size(1000));
853-
return searchWithLenientDeserialization(searchRequest);
844+
return client.search(s -> s.index(indexName).query(boolQuery).size(1000), JsonData.class);
854845
} finally {
855846
if (searchTimerSample != null) {
856847
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -1214,14 +1205,14 @@ public Response doSearch(
12141205
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
12151206

12161207
SearchRequest searchRequest = requestBuilder.build(request.getIndex());
1217-
SearchResponse<JsonData> searchResponse = searchWithLenientDeserialization(searchRequest);
1208+
SearchResponse<JsonData> searchResponse = client.search(searchRequest, JsonData.class);
12181209

12191210
if (searchTimerSample != null) {
12201211
RequestLatencyContext.endSearchOperation(searchTimerSample);
12211212
}
12221213

12231214
if (!Boolean.TRUE.equals(request.getIsHierarchy())) {
1224-
return Response.status(OK).entity(OsUtils.toJsonStringLenient(searchResponse)).build();
1215+
return Response.status(OK).entity(searchResponse.toJsonString()).build();
12251216
} else {
12261217
List<?> response = buildSearchHierarchy(request, searchResponse, clusterAlias);
12271218
return Response.status(OK).entity(response).build();
@@ -1313,7 +1304,7 @@ private OpenSearchRequestBuilder buildHierarchyQuery(
13131304
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
13141305
SearchResponse<JsonData> searchResponse;
13151306
try {
1316-
searchResponse = searchWithLenientDeserialization(searchRequest);
1307+
searchResponse = client.search(searchRequest, JsonData.class);
13171308
} finally {
13181309
if (searchTimerSample != null) {
13191310
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -1510,16 +1501,14 @@ private Response fallbackToBasicSearch(
15101501
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
15111502
SearchResponse<JsonData> searchResponse;
15121503
try {
1513-
searchResponse = searchWithLenientDeserialization(searchRequest);
1504+
searchResponse = client.search(searchRequest, JsonData.class);
15141505
} finally {
15151506
if (searchTimerSample != null) {
15161507
RequestLatencyContext.endSearchOperation(searchTimerSample);
15171508
}
15181509
}
15191510

1520-
return Response.status(Response.Status.OK)
1521-
.entity(OsUtils.toJsonStringLenient(searchResponse))
1522-
.build();
1511+
return Response.status(Response.Status.OK).entity(searchResponse.toJsonString()).build();
15231512
} catch (Exception e) {
15241513
LOG.error("Error in fallback search: {}", e.getMessage(), e);
15251514
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
@@ -1548,7 +1537,7 @@ public Map<String, Object> searchEntityRelationshipInternal(
15481537
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
15491538
SearchResponse<JsonData> searchResponse;
15501539
try {
1551-
searchResponse = searchWithLenientDeserialization(searchRequest);
1540+
searchResponse = client.search(searchRequest, JsonData.class);
15521541
} finally {
15531542
if (searchTimerSample != null) {
15541543
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -1603,7 +1592,7 @@ public Map<String, Object> searchSchemaEntityRelationshipInternal(
16031592
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
16041593
SearchResponse<JsonData> searchResponse;
16051594
try {
1606-
searchResponse = searchWithLenientDeserialization(searchRequest);
1595+
searchResponse = client.search(searchRequest, JsonData.class);
16071596
} finally {
16081597
if (searchTimerSample != null) {
16091598
RequestLatencyContext.endSearchOperation(searchTimerSample);
@@ -1713,7 +1702,7 @@ private void getEntityRelationship(
17131702
Timer.Sample searchTimerSample = RequestLatencyContext.startSearchOperation();
17141703
SearchResponse<JsonData> searchResponse;
17151704
try {
1716-
searchResponse = searchWithLenientDeserialization(searchRequest);
1705+
searchResponse = client.search(searchRequest, JsonData.class);
17171706
} finally {
17181707
if (searchTimerSample != null) {
17191708
RequestLatencyContext.endSearchOperation(searchTimerSample);

0 commit comments

Comments
 (0)