SearchParameters searchParameters = new SearchParameters(); searchParameters.setTypeName(typeName); searchParameters.setClassification(classification); searchParameters.setQuery(query); searchParameters.setExcludeDeletedEntities(excludeDeletedEntities); searchParameters.setLimit(limit); searchParameters.setOffset(offset);
if (parameters.getLimit() < 0 || parameters.getOffset() < 0) { throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "Limit/offset should be non-negative"); if (StringUtils.isEmpty(parameters.getTypeName()) && !isEmpty(parameters.getEntityFilters())) { throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "EntityFilters specified without Type name"); if (StringUtils.isEmpty(parameters.getClassification()) && !isEmpty(parameters.getTagFilters())) { throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "TagFilters specified without tag name"); if (StringUtils.isEmpty(parameters.getTypeName()) && StringUtils.isEmpty(parameters.getClassification()) && StringUtils.isEmpty(parameters.getQuery()) && StringUtils.isEmpty(parameters.getTermName())) { throw new AtlasBaseException(AtlasErrorCode.INVALID_SEARCH_PARAMS);
private SearchParameters getSearchParameters(int limit, int offset, SearchParameters.FilterCriteria criteria) { SearchParameters searchParameters = new SearchParameters(); searchParameters.setTypeName(ENTITY_TYPE_NAME); searchParameters.setEntityFilters(criteria); searchParameters.setLimit(limit); searchParameters.setOffset(offset); return searchParameters; }
private void validateSearchParameters(SearchParameters parameters) throws AtlasBaseException { if (parameters != null) { Servlets.validateQueryParamLength("typeName", parameters.getTypeName()); Servlets.validateQueryParamLength("classification", parameters.getClassification()); if (StringUtils.isNotEmpty(parameters.getQuery()) && parameters.getQuery().length() > maxFullTextQueryLength) { throw new AtlasBaseException(AtlasErrorCode.INVALID_QUERY_LENGTH, Constants.MAX_FULLTEXT_QUERY_STR_LENGTH); } } } }
private SearchParameters getActualSearchParameters() { SearchParameters sp = new SearchParameters(); sp.setClassification("test-classification"); sp.setQuery("g.v().has('__guid').__guid.toList()"); sp.setLimit(10); sp.setTypeName("some-type"); return sp; }
private AtlasSearchResult executeSavedSearch(AtlasUserSavedSearch savedSearch) throws AtlasBaseException { SearchParameters sp = savedSearch.getSearchParameters(); if(savedSearch.getSearchType() == AtlasUserSavedSearch.SavedSearchType.ADVANCED) { String dslQuery = atlasDiscoveryService.getDslQueryUsingTypeNameClassification(sp.getQuery(), sp.getTypeName(), sp.getClassification()); return atlasDiscoveryService.searchUsingDslQuery(dslQuery, sp.getLimit(), sp.getOffset()); } else { return atlasDiscoveryService.searchWithParameters(sp); } }
public SearchContext(SearchParameters searchParameters, AtlasTypeRegistry typeRegistry, AtlasGraph graph, Set<String> indexedKeys) throws AtlasBaseException { String classificationName = searchParameters.getClassification(); this.indexedKeys = indexedKeys; this.entityAttributes = new HashSet<>(); this.entityType = typeRegistry.getEntityTypeByName(searchParameters.getTypeName()); this.classificationType = getClassificationType(classificationName); if (StringUtils.isNotEmpty(searchParameters.getTypeName()) && entityType == null) { throw new AtlasBaseException(AtlasErrorCode.UNKNOWN_TYPENAME, searchParameters.getTypeName()); AtlasVertex glossaryTermVertex = getGlossaryTermVertex(searchParameters.getTermName()); if (StringUtils.isNotEmpty(searchParameters.getTermName()) && glossaryTermVertex == null) { throw new AtlasBaseException(AtlasErrorCode.UNKNOWN_GLOSSARY_TERM, searchParameters.getTermName()); validateAttributes(entityType, searchParameters.getEntityFilters()); validateAttributes(classificationType, searchParameters.getTagFilters());
public AtlasSearchResult searchWithParameters(SearchParameters searchParameters) throws AtlasBaseException { AtlasSearchResult ret = new AtlasSearchResult(searchParameters); final QueryParams params = QueryParams.getNormalizedParams(searchParameters.getLimit(),searchParameters.getOffset()); searchParameters.setLimit(params.limit()); searchParameters.setOffset(params.offset()); Set<String> entityAttributes = new HashSet<>(); if (CollectionUtils.isNotEmpty(searchParameters.getAttributes())) { resultAttributes.addAll(searchParameters.getAttributes()); AtlasEntityHeader entity = entityRetriever.toAtlasEntityHeader(atlasVertex, resultAttributes); if(searchParameters.getIncludeClassificationAttributes()) { entity.setClassifications(entityRetriever.getAllClassifications(atlasVertex));
@Override public List<AtlasVertex> execute() { if (LOG.isDebugEnabled()) { LOG.debug("==> TermSearchProcessor.execute({})", context); } List<AtlasVertex> ret = new ArrayList<>(); AtlasPerfTracer perf = null; if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) { perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TermSearchProcessor.execute(" + context + ")"); } try { if (CollectionUtils.isNotEmpty(assignedEntities)) { final int startIdx = context.getSearchParameters().getOffset(); final int limit = context.getSearchParameters().getLimit(); final List<AtlasVertex> tmpList = new ArrayList<>(assignedEntities); super.filter(tmpList); collectResultVertices(ret, startIdx, limit, 0, tmpList); } } finally { AtlasPerfTracer.log(perf); } if (LOG.isDebugEnabled()) { LOG.debug("<== TermSearchProcessor.execute({}): ret.size()={}", context, ret.size()); } return ret; }
final int startIdx = context.getSearchParameters().getOffset(); final int limit = context.getSearchParameters().getLimit(); final boolean activeOnly = context.getSearchParameters().getExcludeDeletedEntities(); if (context.getSearchParameters().getTagFilters() == null) {
boolean needFullTextProcessor() { return StringUtils.isNotEmpty(searchParameters.getQuery()); }
@Test(dependsOnMethods = {"createsNewProfile", "savesMultipleQueriesForUser", "verifyQueryConversionFromJSON"}) public void updateSearch() throws AtlasBaseException { final String queryName = getIndexBasedQueryName(0); String userName = getIndexBasedUserName(0); AtlasUserSavedSearch expected = userProfileService.getSavedSearch(userName, queryName); assertNotNull(expected); SearchParameters sp = expected.getSearchParameters(); sp.setClassification("new-classification"); AtlasUserSavedSearch actual = userProfileService.updateSavedSearch(expected); assertNotNull(actual); assertNotNull(actual.getSearchParameters()); assertEquals(actual.getSearchParameters().getClassification(), expected.getSearchParameters().getClassification()); }
final int startIdx = context.getSearchParameters().getOffset(); final int limit = context.getSearchParameters().getLimit(); final boolean activeOnly = context.getSearchParameters().getExcludeDeletedEntities();
final FilterCriteria filterCriteria = context.getSearchParameters().getEntityFilters(); final Set<String> indexAttributes = new HashSet<>(); final Set<String> graphAttributes = new HashSet<>(); final String typeAndSubTypesQryStr; if (context.getSearchParameters().getIncludeSubTypes()) { typeAndSubTypes = entityType.getTypeAndAllSubTypes(); typeAndSubTypesQryStr = entityType.getTypeAndAllSubTypesQryStr(); filterClassification = !context.needClassificationProcessor(); if (context.getSearchParameters().getIncludeSubClassifications()) { classificationTypeAndSubTypes = classificationType.getTypeAndAllSubTypes(); } else { if (context.getSearchParameters().getExcludeDeletedEntities()) { constructStateTestQuery(indexQuery); if (context.getSearchParameters().getExcludeDeletedEntities() && this.indexQuery == null) { graphQuery.has(Constants.STATE_PROPERTY_KEY, "ACTIVE"); if (graphQueryPredicate != null) { if (context.getSearchParameters().getExcludeDeletedEntities()) { filterGraphQueryPredicate = PredicateUtils.andPredicate(filterGraphQueryPredicate, activePredicate);
final FilterCriteria filterCriteria = context.getSearchParameters().getTagFilters(); final Set<String> indexAttributes = new HashSet<>(); final Set<String> graphAttributes = new HashSet<>(); final String typeAndSubTypesQryStr; if (context.getSearchParameters().getIncludeSubClassifications()) { typeAndSubTypes = classificationType.getTypeAndAllSubTypes(); typeAndSubTypesQryStr = classificationType.getTypeAndAllSubTypesQryStr(); if (context.getSearchParameters().getTagFilters() != null) { gremlinQuery.append(queryProvider.getQuery(AtlasGremlinQueryProvider.AtlasGremlinQuery.BASIC_SEARCH_TYPE_FILTER)); constructGremlinFilterQuery(gremlinQuery, gremlinQueryBindings, context.getClassificationType(), context.getSearchParameters().getTagFilters()); if (context.getSearchParameters().getExcludeDeletedEntities()) { entityGraphQueryTraitNames.has(Constants.STATE_PROPERTY_KEY, "ACTIVE");
public SearchContext(SearchParameters searchParameters, AtlasTypeRegistry typeRegistry, AtlasGraph graph, Set<String> indexedKeys) { this.searchParameters = searchParameters; this.typeRegistry = typeRegistry; this.graph = graph; this.indexedKeys = indexedKeys; this.entityAttributes = new HashSet<>(); this.entityType = typeRegistry.getEntityTypeByName(searchParameters.getTypeName()); this.classificationType = typeRegistry.getClassificationTypeByName(searchParameters.getClassification()); if (needFullTextrocessor()) { addProcessor(new FullTextSearchProcessor(this)); } if (needClassificationProcessor()) { addProcessor(new ClassificationSearchProcessor(this)); } if (needEntityProcessor()) { addProcessor(new EntitySearchProcessor(this)); } }
boolean needClassificationProcessor() { return classificationType != null && (entityType == null || hasAttributeFilter(searchParameters.getTagFilters())); }
final FilterCriteria filterCriteria = context.getSearchParameters().getEntityFilters(); final Set<String> typeAndSubTypes = entityType.getTypeAndAllSubTypes(); final String typeAndSubTypesQryStr = entityType.getTypeAndAllSubTypesQryStr();
private SearchParameters getActualSearchParameters() { SearchParameters sp = new SearchParameters(); sp.setClassification("test-classification"); sp.setQuery("g.v().has('__guid').__guid.toList()"); sp.setLimit(10); sp.setTypeName("some-type"); return sp; }
SearchParameters searchParams = new SearchParameters(); FilterCriteria attrFilter = new FilterCriteria(); attrFilter.setAttributeValue(attrValuePrefix); searchParams.setTypeName(typeName); searchParams.setEntityFilters(attrFilter); searchParams.setOffset(offset); searchParams.setLimit(limit);