You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by pi...@apache.org on 2021/10/08 13:50:57 UTC
[atlas] branch master updated: ATLAS-4436: Basic Search : Search By
Query '*' gets internal entities also
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 <sh...@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 <pi...@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