Skip to content

Commit 03cbdef

Browse files
committed
query optimizer
1 parent 3b645b1 commit 03cbdef

File tree

9 files changed

+669
-10
lines changed

9 files changed

+669
-10
lines changed

metadata-ingestion/examples/perf/lineage_perf_example.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ def scenario_perf():
406406
scenario_skip_complex,
407407
]
408408
# Very long load time
409-
# scenario_generators.add(scenario_perf)
409+
# scenario_generators.append(scenario_perf)
410410

411411
# Chain all generators into a single generator
412412
chained_generator = itertools.chain.from_iterable(

metadata-io/src/main/java/com/linkedin/metadata/graph/elastic/ESGraphQueryDAO.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static com.linkedin.metadata.aspect.models.graph.Edge.*;
44
import static com.linkedin.metadata.graph.elastic.ElasticSearchGraphService.*;
55
import static com.linkedin.metadata.search.utils.ESUtils.applyResultLimit;
6+
import static com.linkedin.metadata.search.utils.ESUtils.queryOptimize;
67

78
import com.datahub.util.exception.ESQueryException;
89
import com.google.common.annotations.VisibleForTesting;
@@ -178,7 +179,7 @@ private static BoolQueryBuilder getAggregationFilter(
178179
BoolQueryBuilder subFilter = QueryBuilders.boolQuery();
179180
TermQueryBuilder relationshipTypeTerm =
180181
QueryBuilders.termQuery(RELATIONSHIP_TYPE, pair.getValue().getType()).caseInsensitive(true);
181-
subFilter.must(relationshipTypeTerm);
182+
subFilter.filter(relationshipTypeTerm);
182183

183184
String sourceType;
184185
String destinationType;
@@ -192,10 +193,10 @@ private static BoolQueryBuilder getAggregationFilter(
192193

193194
TermQueryBuilder sourceTypeTerm =
194195
QueryBuilders.termQuery(SOURCE_TYPE, sourceType).caseInsensitive(true);
195-
subFilter.must(sourceTypeTerm);
196+
subFilter.filter(sourceTypeTerm);
196197
TermQueryBuilder destinationTypeTerm =
197198
QueryBuilders.termQuery(DESTINATION_TYPE, destinationType).caseInsensitive(true);
198-
subFilter.must(destinationTypeTerm);
199+
subFilter.filter(destinationTypeTerm);
199200
return subFilter;
200201
}
201202

@@ -261,6 +262,7 @@ public static BoolQueryBuilder buildQuery(
261262
relationshipQuery.should(
262263
QueryBuilders.termQuery(RELATIONSHIP_TYPE, relationshipType)));
263264
relationshipQuery.minimumShouldMatch(1);
265+
264266
finalQuery.filter(relationshipQuery);
265267
}
266268

@@ -1140,6 +1142,10 @@ private List<LineageRelationship> relationshipsGroupQuery(
11401142

11411143
Set<Urn> entityUrnSet = new HashSet<>(entityUrns);
11421144

1145+
if (config.getSearch().getGraph().isQueryOptimization()) {
1146+
queryOptimize(baseQuery, false);
1147+
}
1148+
11431149
// Get search responses as a stream with pagination
11441150
Stream<SearchResponse> responseStream =
11451151
executeGroupByLineageSearchQuery(
@@ -1167,16 +1173,16 @@ private List<LineageRelationship> relationshipsGroupQuery(
11671173
private static BoolQueryBuilder getOutGoingEdgeQuery(
11681174
@Nonnull Set<Urn> urns, @Nonnull Set<EdgeInfo> outgoingEdges) {
11691175
BoolQueryBuilder outgoingEdgeQuery = QueryBuilders.boolQuery();
1170-
outgoingEdgeQuery.must(buildUrnFilters(urns, SOURCE));
1171-
outgoingEdgeQuery.must(buildEdgeFilters(outgoingEdges));
1176+
outgoingEdgeQuery.filter(buildUrnFilters(urns, SOURCE));
1177+
outgoingEdgeQuery.filter(buildEdgeFilters(outgoingEdges));
11721178
return outgoingEdgeQuery;
11731179
}
11741180

11751181
private static BoolQueryBuilder getIncomingEdgeQuery(
11761182
@Nonnull Set<Urn> urns, Set<EdgeInfo> incomingEdges) {
11771183
BoolQueryBuilder incomingEdgeQuery = QueryBuilders.boolQuery();
1178-
incomingEdgeQuery.must(buildUrnFilters(urns, DESTINATION));
1179-
incomingEdgeQuery.must(buildEdgeFilters(incomingEdges));
1184+
incomingEdgeQuery.filter(buildUrnFilters(urns, DESTINATION));
1185+
incomingEdgeQuery.filter(buildEdgeFilters(incomingEdges));
11801186
return incomingEdgeQuery;
11811187
}
11821188

0 commit comments

Comments
 (0)