133 lines
5.9 KiB
Java
Raw Normal View History

2019-08-31 20:51:14 -07:00
package com.linkedin.metadata.restli;
import com.linkedin.common.urn.Urn;
import com.linkedin.data.template.RecordTemplate;
import com.linkedin.data.template.UnionTemplate;
import com.linkedin.metadata.dao.BaseSearchDAO;
import com.linkedin.metadata.dao.SearchResult;
import com.linkedin.metadata.dao.utils.ModelUtils;
import com.linkedin.metadata.query.AutoCompleteResult;
import com.linkedin.metadata.query.CriterionArray;
import com.linkedin.metadata.query.Filter;
import com.linkedin.metadata.query.SearchResultMetadata;
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
import com.linkedin.metadata.query.SortCriterion;
import com.linkedin.metadata.query.SortOrder;
2019-08-31 20:51:14 -07:00
import com.linkedin.parseq.Task;
import com.linkedin.restli.server.CollectionResult;
import com.linkedin.restli.server.PagingContext;
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
import com.linkedin.restli.server.annotations.Action;
import com.linkedin.restli.server.annotations.ActionParam;
import com.linkedin.restli.server.annotations.Finder;
import com.linkedin.restli.server.annotations.Optional;
import com.linkedin.restli.server.annotations.PagingContextParam;
import com.linkedin.restli.server.annotations.QueryParam;
import com.linkedin.restli.server.annotations.RestMethod;
2019-08-31 20:51:14 -07:00
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
2019-08-31 20:51:14 -07:00
import static com.linkedin.metadata.restli.RestliConstants.*;
/**
* A base class for the entity rest.li resource that supports CRUD + search methods
*
* See http://go/gma for more details
*
* @param <KEY> the resource's key type
* @param <VALUE> the resource's value type
* @param <URN> must be a valid {@link Urn} type for the snapshot
* @param <SNAPSHOT> must be a valid snapshot type defined in com.linkedin.metadata.snapshot
* @param <ASPECT_UNION> must be a valid aspect union type supported by the snapshot
* @param <DOCUMENT> must be a valid search document type defined in com.linkedin.metadata.search
*/
public abstract class BaseSearchableEntityResource<
// @formatter:off
KEY extends RecordTemplate,
VALUE extends RecordTemplate,
URN extends Urn,
SNAPSHOT extends RecordTemplate,
ASPECT_UNION extends UnionTemplate,
DOCUMENT extends RecordTemplate>
// @formatter:on
extends BaseEntityResource<KEY, VALUE, URN, SNAPSHOT, ASPECT_UNION> {
private static final Filter EMPTY_FILTER = new Filter().setCriteria(new CriterionArray());
private static final String MATCH_ALL = "*";
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
private static final String DEFAULT_SORT_CRITERION_FIELD = "urn";
2019-08-31 20:51:14 -07:00
public BaseSearchableEntityResource(@Nonnull Class<SNAPSHOT> snapshotClass,
@Nonnull Class<ASPECT_UNION> aspectUnionClass) {
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
super(snapshotClass, aspectUnionClass);
2019-08-31 20:51:14 -07:00
}
/**
* Returns a document-specific {@link BaseSearchDAO}.
*/
@Nonnull
protected abstract BaseSearchDAO<DOCUMENT> getSearchDAO();
/**
* Returns all {@link VALUE} objects from search index. By default the list is sorted in ascending order of urn
2019-08-31 20:51:14 -07:00
*
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
* @param pagingContext pagination context
2019-08-31 20:51:14 -07:00
* @param aspectNames list of aspect names that need to be returned
* @param filter {@link Filter} to filter the search results
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
* @param sortCriterion {@link SortCriterion} to sort the search results
2019-08-31 20:51:14 -07:00
* @return list of all {@link VALUE} objects obtained from search results
*/
@RestMethod.GetAll
@Nonnull
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
public Task<List<VALUE>> getAll(@Nonnull PagingContext pagingContext,
@QueryParam(PARAM_ASPECTS) @Optional("[]") @Nonnull String[] aspectNames,
@QueryParam(PARAM_FILTER) @Optional @Nullable Filter filter,
@QueryParam(PARAM_SORT) @Optional @Nullable SortCriterion sortCriterion) {
2019-08-31 20:51:14 -07:00
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
final Filter searchFilter = filter != null ? filter : EMPTY_FILTER;
final SortCriterion searchSortCriterion = sortCriterion != null ? sortCriterion
: new SortCriterion().setField(DEFAULT_SORT_CRITERION_FIELD).setOrder(SortOrder.ASCENDING);
return RestliUtils.toTask(
() -> getSearchQueryCollectionResult(MATCH_ALL, aspectNames, searchFilter, searchSortCriterion,
pagingContext).getElements());
2019-08-31 20:51:14 -07:00
}
@Finder(FINDER_SEARCH)
@Nonnull
public Task<CollectionResult<VALUE, SearchResultMetadata>> search(@QueryParam(PARAM_INPUT) @Nonnull String input,
@QueryParam(PARAM_ASPECTS) @Optional("[]") @Nonnull String[] aspectNames,
@QueryParam(PARAM_FILTER) @Optional @Nullable Filter filter,
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
@QueryParam(PARAM_SORT) @Optional @Nullable SortCriterion sortCriterion,
2019-08-31 20:51:14 -07:00
@PagingContextParam @Nonnull PagingContext pagingContext) {
final Filter searchFilter = filter != null ? filter : EMPTY_FILTER;
return RestliUtils.toTask(
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
() -> getSearchQueryCollectionResult(input, aspectNames, searchFilter, sortCriterion, pagingContext));
2019-08-31 20:51:14 -07:00
}
@Action(name = ACTION_AUTOCOMPLETE)
@Nonnull
public Task<AutoCompleteResult> autocomplete(@ActionParam(PARAM_QUERY) @Nonnull String query,
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
@ActionParam(PARAM_FIELD) @Nullable String field, @ActionParam(PARAM_FILTER) @Nullable Filter filter,
2019-08-31 20:51:14 -07:00
@ActionParam(PARAM_LIMIT) int limit) {
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
return RestliUtils.toTask(() -> getSearchDAO().autoComplete(query, field, filter, limit));
2019-08-31 20:51:14 -07:00
}
@Nonnull
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
private CollectionResult<VALUE, SearchResultMetadata> getSearchQueryCollectionResult(@Nonnull String input,
@Nonnull String[] aspectNames, @Nullable Filter searchFilter, @Nullable SortCriterion sortCriterion,
@Nonnull PagingContext pagingContext) {
2019-08-31 20:51:14 -07:00
final SearchResult<DOCUMENT> searchResult =
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
getSearchDAO().search(input, searchFilter, sortCriterion, pagingContext.getStart(), pagingContext.getCount());
2019-08-31 20:51:14 -07:00
final List<URN> matchedUrns = searchResult.getDocumentList()
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
.stream()
.map(d -> (URN) ModelUtils.getUrnFromDocument(d))
.collect(Collectors.toList());
final Map<URN, VALUE> urnValueMap = getInternal(matchedUrns, parseAspectsParam(aspectNames));
2019-08-31 20:51:14 -07:00
return new CollectionResult<>(matchedUrns.stream().map(urn -> urnValueMap.get(urn)).collect(Collectors.toList()),
corp-identity-gms 1.0.0 -> 1.0.25: 1.0.24: Corp user search across teams and skills 1.0.21: Make /corpGroups /gridUsers /gridGroups extend BaseEntityResource 1.0.17: Use correct util function to load resource file 1.0.16: Add ingest, backfill & getSnapshot action methods to all top-level resources in corp-identity-gms 1.0.13: Onboard search query templates on corp-identity-gms 1.0.9: Fix batch get and add client for batch get 1.0.8: Change package name for corpuser search config 1.0.7: Use search config to get autocomplete field 1.0.6: Implement searchable client 1.0.5: Auto-complete backend support 1.0.3: Add search API metadata-models 24.0.0 -> 38.1.6: 38.1.3: Index active status to corp user search index 38.1.2: Change update response to create response for create API 38.0.10: Mark BaseAspectResource as deprecated 38.0.9: Allow TYPEREF items which have primitive types for arrays in models 38.0.7: Add get-and-set-if-absent function to Local DAO 38.0.6: Add find entities with one relationship in query dao 38.0.4: Fix the inconsistency use of constants and urn params in query dao 38.0.2: Parse source map to obtain the urn 38.0.1: Search document validator in Index Builder 38.0.0: Add urns to search result metadata 37.0.7: Refactor the query dao 37.0.6: Use test models in neo4j dao 37.0.5: Drop metadata model structural assumptions made in neo4j DAOs 37.0.2: Return empty list from getBrowsePaths if browsePaths field doesn't exist 36.0.3: Drop elasticsearch-dao's metadata-models dependency 35.0.10: ES Search DAO to handle null values 35.0.5: Ebean local Dao query string match 35.0.4: Drop all search & browse configs that have been moved to individual GMS 35.0.3: Add ReportTo relationship model 35.0.0: Load resource file properly 34.0.9: Make RestliAuditor injectable 34.0.8: Use encoded query in the test resource 34.0.4: Handle empty aspects param correctly for backfill & getSnapshot actions 34.0.1: Remove corp user specific files from metadata-models 34.0.0: Add backfill & getSnapshot actions to BaseEntityResource 32.0.16: Merge data template classes into metadata-dao's main artifact 32.0.14: Replace "update" method with "ingest" action in BaseEntityResource 32.0.13: Make fliter & sortCriteria parameters optional as they should have been 32.0.12: Move AspectVersion & SnapshotKey back to their original namespaces 32.0.11: Break metadata-dao's dependency on metadata-models 32.0.10: Move model validators to a separate module 32.0.9: Extract principal from the request context for user AuditStamp 32.0.8: Fixing nullability annotations for search/autocomplete/browse resources & daos 32.0.7: Move DAO-specific models to metadata-dao module 32.0.4: Fix search finder not returning total search results count 32.0.3: Implement get_all using search index 32.0.2: Add missing nullability annotation 32.0.1: Use more consistent naming for the test models 31.0.1: Use test-specific metadata models in metadata-dao 31.0.0: Add sort order to Search Dao 30.0.2: Rename Aspect test model to AspectUnion to avoid confusion 30.0.1: Committing migration for metadata-models. 30.0.0: Add default autocomplete field in search config 29.0.16: Modify testcase to account for empty filters 29.0.15: Add searchable interface that clients can use 29.0.14: Use test-specific metadata models in ebean-dao 29.0.12: Move TestUtils to metadata-test-models module 29.0.11: Refactor all tests in metadata-restli to use test models 29.0.10: Move li-metadata-test-utils, metadata-test-models, metadata-test-utils into a new metadata-testing directory to improve code organization. Note that this is a backward compatible change as this doesn't alter the produced artifacts. 29.0.9: Move test-specific models to a stand-alone module 29.0.2: Refactor the rest of validators 28.0.3: Refactor validateSchema for aspect 28.0.2: Implement searchDao for CorpUserInfo. 27.0.16: Refactor for ModelValidation tests 27.0.10: Add new relationship union to model utils 27.0.9: Add plugin to rest client factory 27.0.6: Add rest high level factory 27.0.5: Fix a test bug when reviewing the code 27.0.4: Add create via lambda API to BaseVersionedAspectResource 27.0.2: Change return type of search finder to capture search result metadata in BaseSearchableEntityResource 27.0.1: Drop the unnecessary get method from BaseEntityResource 27.0.0: Add BaseBrowsableEntityResource 26.0.15: Add autocomplete action to BaseSearchableEntityResource 26.0.14: Add BaseSearchableEntityResource 26.0.13: Add getUrnFromDocument & urnClassForDocument util methods that are needed in future RBs 26.0.11: Add BaseVersionedAspectResource 26.0.9: Index signals associated with dataset relevance 26.0.4: Support namespace for ID generation 26.0.1: Fix inconsistent instance variable naming in SearchResult 25.0.6: Add entity-snapshot conversion 25.0.5: Use test-specific metadata models in metadata-restli 25.0.3: Add aspect filtering to BaseEntityResource 24.0.9: Add update method to BaseEntityResource 24.0.7: Fix for parameter types of getBrowsePaths action method MP_VERSION=corp-identity-gms:1.0.25 MP_VERSION=metadata-models:38.1.6 MP_VERSION=wherehows-samza:1.0.29
2019-10-02 11:08:52 -07:00
searchResult.getTotalCount(), searchResult.getSearchResultMetadata());
2019-08-31 20:51:14 -07:00
}
}