From 204275cc2d7fc520e1f9ea2b0f2ad6161af706c5 Mon Sep 17 00:00:00 2001
From: Damian Warszawski <damian.warszawski@ing.com>
Date: Tue, 28 Apr 2020 22:55:21 +0200
Subject: [PATCH] ATLAS-3760: optimize freetext search handling of excludeDeletedEntities flag

Signed-off-by: Madhan Neethiraj <madhan@apache.org>
---
 repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java | 11 ++++-------
 1 file changed, 4 insertions(+), 7 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 92b5eb4..9850d8e 100644
--- a/repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java
+++ b/repository/src/main/java/org/apache/atlas/discovery/FreeTextSearchProcessor.java
@@ -57,6 +57,8 @@ public class FreeTextSearchProcessor extends SearchProcessor {
             queryString.append(AND_STR).append(context.getEntityTypesQryStr());
         }
 
+        graphIndexQueryBuilder.addActiveStateQueryFilter(queryString);
+
         if (CollectionUtils.isNotEmpty(context.getClassificationTypes()) && context.getClassificationTypesQryStr().length() <= MAX_QUERY_STR_LENGTH_TYPES) {
             queryString.append(AND_STR).append(context.getClassificationTypesQryStr());
         }
@@ -90,9 +92,8 @@ public class FreeTextSearchProcessor extends SearchProcessor {
         }
 
         try {
-            final int     startIdx   = context.getSearchParameters().getOffset();
-            final int     limit      = context.getSearchParameters().getLimit();
-            final boolean activeOnly = context.getSearchParameters().getExcludeDeletedEntities();
+            final int startIdx = context.getSearchParameters().getOffset();
+            final int limit    = context.getSearchParameters().getLimit();
 
             // query to start at 0, even though startIdx can be higher - because few results in earlier retrieval could
             // have been dropped: like vertices of non-entity or non-active-entity
@@ -137,10 +138,6 @@ public class FreeTextSearchProcessor extends SearchProcessor {
                             continue;
                         }
 
-                        if (activeOnly && AtlasGraphUtilsV2.getState(vertex) != AtlasEntity.Status.ACTIVE) {
-                            continue;
-                        }
-
                         if (context.getClassificationType() != null) {
                             List<String> entityClassifications = GraphHelper.getAllTraitNames(vertex);
 
--
libgit2 0.27.1