From a27f82cae27c87381a404b1b600793b855b3e766 Mon Sep 17 00:00:00 2001 From: david-leifker <114954101+david-leifker@users.noreply.github.com> Date: Mon, 20 Mar 2023 18:07:25 -0500 Subject: [PATCH] =?UTF-8?q?fix(search):=20tags=20with=20colons=20exercises?= =?UTF-8?q?=20search=20with=20urns,=20must=20follow=E2=80=A6=20(#7602)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resolvers/search/SearchResolver.java | 33 +-- .../mappers/SearchFlagsInputMapper.java | 2 + .../resolvers/search/SearchResolverTest.java | 190 ++++++++++++++++++ .../query/request/SearchRequestHandler.java | 2 +- .../metadata/search/utils/SearchUtils.java | 3 +- .../search/utils/SearchUtilsTest.java | 18 ++ 6 files changed, 234 insertions(+), 14 deletions(-) create mode 100644 datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/search/SearchResolverTest.java diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/search/SearchResolver.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/search/SearchResolver.java index 2f0950be73..0e66d6e601 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/search/SearchResolver.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/search/SearchResolver.java @@ -16,6 +16,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import static com.linkedin.datahub.graphql.resolvers.ResolverUtils.bindArgument; +import static com.linkedin.metadata.search.utils.SearchUtils.applyDefaultSearchFlags; /** @@ -24,7 +25,12 @@ import static com.linkedin.datahub.graphql.resolvers.ResolverUtils.bindArgument; @Slf4j @RequiredArgsConstructor public class SearchResolver implements DataFetcher> { - + private static final SearchFlags SEARCH_RESOLVER_DEFAULTS = new SearchFlags() + .setFulltext(true) + .setMaxAggValues(20) + .setSkipCache(false) + .setSkipAggregates(false) + .setSkipHighlighting(false); private static final int DEFAULT_START = 0; private static final int DEFAULT_COUNT = 10; @@ -40,26 +46,29 @@ public class SearchResolver implements DataFetcher { try { - log.debug("Executing search. entity type {}, query {}, filters: {}, orFilters: {}, start: {}, count: {}", input.getType(), - input.getQuery(), input.getFilters(), input.getOrFilters(), start, count); - SearchFlags searchFlags = null; - com.linkedin.datahub.graphql.generated.SearchFlags inputFlags = input.getSearchFlags(); - if (inputFlags != null) { - searchFlags = SearchFlagsInputMapper.INSTANCE.apply(inputFlags); - } + log.debug("Executing search. entity type {}, query {}, filters: {}, orFilters: {}, start: {}, count: {}, searchFlags: {}", + input.getType(), input.getQuery(), input.getFilters(), input.getOrFilters(), start, count, searchFlags); + return UrnSearchResultsMapper.map( _entityClient.search(entityName, sanitizedQuery, ResolverUtils.buildFilter(input.getFilters(), input.getOrFilters()), null, start, count, ResolverUtils.getAuthentication(environment), searchFlags)); } catch (Exception e) { - log.error("Failed to execute search: entity type {}, query {}, filters: {}, orFilters: {}, start: {}, count: {}", - input.getType(), input.getQuery(), input.getFilters(), input.getOrFilters(), start, count); + log.error("Failed to execute search: entity type {}, query {}, filters: {}, orFilters: {}, start: {}, count: {}, searchFlags: {}", + input.getType(), input.getQuery(), input.getFilters(), input.getOrFilters(), start, count, searchFlags); throw new RuntimeException( - "Failed to execute search: " + String.format("entity type %s, query %s, filters: %s, orFilters: %s, start: %s, count: %s", - input.getType(), input.getQuery(), input.getFilters(), input.getOrFilters(), start, count), e); + "Failed to execute search: " + String.format("entity type %s, query %s, filters: %s, orFilters: %s, start: %s, count: %s, searchFlags: %s", + input.getType(), input.getQuery(), input.getFilters(), input.getOrFilters(), start, count, searchFlags), e); } }); } diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/SearchFlagsInputMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/SearchFlagsInputMapper.java index 5cf6e20bc1..6435d6ee4c 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/SearchFlagsInputMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/SearchFlagsInputMapper.java @@ -24,6 +24,8 @@ public class SearchFlagsInputMapper implements ModelMapper