This is an automated email from the ASF dual-hosted git repository. pinal pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/atlas.git
The following commit(s) were added to refs/heads/master by this push: new a8ecfdf ATLAS-4436: Basic Search : Search By Query '*' gets internal entities also a8ecfdf is described below commit a8ecfdf8d735b56f35af9c0e6f47990b91910ba0 Author: Shraddha Chauhan <shraddha.chau...@freestoneinfotech.com> AuthorDate: Thu Sep 23 15:56:46 2021 +0530 ATLAS-4436: Basic Search : Search By Query '*' gets internal entities also Signed-off-by: Pinal Shah <pinal.s...@freestoneinfotech.com> --- .../atlas/discovery/FreeTextSearchProcessor.java | 11 +++++++- .../atlas/discovery/FullTextSearchProcessor.java | 8 ++++++ .../discovery/FreeTextSearchProcessorTest.java | 31 +++++++++++++++++++++- 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java b/repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java index 86f2cea..d0143c7 100644 --- a/repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java +++ b/repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java @@ -24,13 +24,17 @@ import org.apache.atlas.repository.Constants; import org.apache.atlas.repository.graph.GraphHelper; import org.apache.atlas.repository.graphdb.*; import org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2; +import org.apache.atlas.type.AtlasEntityType; import org.apache.atlas.utils.AtlasPerfTracer; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; /** @@ -137,7 +141,12 @@ public class FreeTextSearchProcessor extends SearchProcessor { if (LOG.isDebugEnabled()) { LOG.debug("FreeTextSearchProcessor.execute(): ignoring non-entity vertex (id={})", vertex.getId()); } + continue; + } + //skip internalTypes + AtlasEntityType entityType = context.getTypeRegistry().getEntityTypeByName(entityTypeName); + if (entityType != null && entityType.isInternalType()) { continue; } diff --git a/repository/src/main/java/org/apache/atlas/discovery/FullTextSearchProcessor.java b/repository/src/main/java/org/apache/atlas/discovery/FullTextSearchProcessor.java index 2d8a448..4648420 100644 --- a/repository/src/main/java/org/apache/atlas/discovery/FullTextSearchProcessor.java +++ b/repository/src/main/java/org/apache/atlas/discovery/FullTextSearchProcessor.java @@ -23,6 +23,7 @@ import org.apache.atlas.repository.Constants; import org.apache.atlas.repository.graphdb.AtlasIndexQuery; import org.apache.atlas.repository.graphdb.AtlasVertex; import org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2; +import org.apache.atlas.type.AtlasEntityType; import org.apache.atlas.utils.AtlasPerfTracer; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; @@ -139,6 +140,13 @@ public class FullTextSearchProcessor extends SearchProcessor { continue; } + //skip internalTypes + String entityTypeName = AtlasGraphUtilsV2.getTypeName(vertex); + AtlasEntityType entityType = context.getTypeRegistry().getEntityTypeByName(entityTypeName); + if (entityType != null && entityType.isInternalType()) { + continue; + } + if (activeOnly && AtlasGraphUtilsV2.getState(vertex) != AtlasEntity.Status.ACTIVE) { continue; diff --git a/repository/src/test/java/org/apache/atlas/discovery/FreeTextSearchProcessorTest.java b/repository/src/test/java/org/apache/atlas/discovery/FreeTextSearchProcessorTest.java index e497bb7..d7825a0 100644 --- a/repository/src/test/java/org/apache/atlas/discovery/FreeTextSearchProcessorTest.java +++ b/repository/src/test/java/org/apache/atlas/discovery/FreeTextSearchProcessorTest.java @@ -26,7 +26,9 @@ import org.apache.atlas.model.discovery.SearchParameters; import org.apache.atlas.repository.graph.AtlasGraphProvider; import org.apache.atlas.repository.graphdb.AtlasGraph; import org.apache.atlas.repository.graphdb.AtlasVertex; +import org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2; import org.apache.atlas.repository.store.graph.v2.EntityGraphRetriever; +import org.apache.atlas.type.AtlasEntityType; import org.apache.atlas.type.AtlasTypeRegistry; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; @@ -38,6 +40,9 @@ import java.util.Collections; import java.util.List; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; @Guice(modules = TestModules.TestOnlyModule.class) public class FreeTextSearchProcessorTest extends BasicTestSetup { @@ -132,11 +137,35 @@ public class FreeTextSearchProcessorTest extends BasicTestSetup { new FreeTextSearchProcessor(context); } + @Test(description = "filtering internal types") + public void searchByTextFilteringInternalTypes() throws AtlasBaseException { + SearchParameters params = new SearchParameters(); + params.setQuery("*"); + params.setExcludeDeletedEntities(true); + params.setLimit(500); + params.setOffset(0); + + SearchContext context = new SearchContext(params, typeRegistry, graph, Collections.<String>emptySet()); + + FreeTextSearchProcessor processor = new FreeTextSearchProcessor(context); + + List<AtlasVertex> vertices = processor.execute(); + + assertNotNull(vertices); + + for (AtlasVertex vertex : vertices) { + String entityTypeName = AtlasGraphUtilsV2.getTypeName(vertex); + AtlasEntityType entityType = context.getTypeRegistry().getEntityTypeByName(entityTypeName); + + assertFalse(entityType.isInternalType()); + assertNotEquals("AtlasGlossaryTerm", entityTypeName); + } + } + @AfterClass public void teardown() throws Exception { AtlasGraphProvider.cleanup(); super.cleanup(); } - } \ No newline at end of file