Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 2D7DF200CFC for ; Wed, 23 Aug 2017 20:00:11 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 2BD8316954E; Wed, 23 Aug 2017 18:00:11 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5500716954D for ; Wed, 23 Aug 2017 20:00:10 +0200 (CEST) Received: (qmail 99923 invoked by uid 500); 23 Aug 2017 18:00:08 -0000 Mailing-List: contact commits-help@atlas.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@atlas.apache.org Delivered-To: mailing list commits@atlas.apache.org Received: (qmail 99905 invoked by uid 99); 23 Aug 2017 18:00:07 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Aug 2017 18:00:07 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id DBA65E088D; Wed, 23 Aug 2017 18:00:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: madhan@apache.org To: commits@atlas.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: atlas git commit: ATLAS-2082: basic-search fails when in-memory filters all results from index-query Date: Wed, 23 Aug 2017 18:00:07 +0000 (UTC) archived-at: Wed, 23 Aug 2017 18:00:11 -0000 Repository: atlas Updated Branches: refs/heads/branch-0.8 0055507ca -> 45d05d110 ATLAS-2082: basic-search fails when in-memory filters all results from index-query (cherry picked from commit 64c9bde668b52c6f621c19110f2da0a0907704d8) Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/45d05d11 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/45d05d11 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/45d05d11 Branch: refs/heads/branch-0.8 Commit: 45d05d11088db48ff33e857151e0bd6882f9388f Parents: 0055507 Author: Madhan Neethiraj Authored: Wed Aug 23 09:57:46 2017 -0700 Committer: Madhan Neethiraj Committed: Wed Aug 23 11:00:01 2017 -0700 ---------------------------------------------------------------------- .../ClassificationSearchProcessor.java | 25 ++++++++++--------- .../atlas/discovery/EntitySearchProcessor.java | 26 ++++++++++++++------ 2 files changed, 31 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/45d05d11/repository/src/main/java/org/apache/atlas/discovery/ClassificationSearchProcessor.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/discovery/ClassificationSearchProcessor.java b/repository/src/main/java/org/apache/atlas/discovery/ClassificationSearchProcessor.java index 29670bc..0daab03 100644 --- a/repository/src/main/java/org/apache/atlas/discovery/ClassificationSearchProcessor.java +++ b/repository/src/main/java/org/apache/atlas/discovery/ClassificationSearchProcessor.java @@ -236,22 +236,23 @@ public class ClassificationSearchProcessor extends SearchProcessor { // Now filter on the tag attributes Set guids = getGuids(entityVertices); - gremlinQueryBindings.put("guids", guids); + // Clear prior results + entityVertices.clear(); - try { - AtlasGraph graph = context.getGraph(); - ScriptEngine gremlinScriptEngine = graph.getGremlinScriptEngine(); - List atlasVertices = (List) graph.executeGremlinScript(gremlinScriptEngine, gremlinQueryBindings, gremlinTagFilterQuery, false); + if (CollectionUtils.isNotEmpty(guids)) { + gremlinQueryBindings.put("guids", guids); - // Clear prior results - entityVertices.clear(); + try { + AtlasGraph graph = context.getGraph(); + ScriptEngine gremlinScriptEngine = graph.getGremlinScriptEngine(); + List atlasVertices = (List) graph.executeGremlinScript(gremlinScriptEngine, gremlinQueryBindings, gremlinTagFilterQuery, false); - if (CollectionUtils.isNotEmpty(atlasVertices)) { - entityVertices.addAll(atlasVertices); + if (CollectionUtils.isNotEmpty(atlasVertices)) { + entityVertices.addAll(atlasVertices); + } + } catch (AtlasBaseException | ScriptException e) { + LOG.warn(e.getMessage(), e); } - - } catch (AtlasBaseException | ScriptException e) { - LOG.warn(e.getMessage(), e); } } http://git-wip-us.apache.org/repos/asf/atlas/blob/45d05d11/repository/src/main/java/org/apache/atlas/discovery/EntitySearchProcessor.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/discovery/EntitySearchProcessor.java b/repository/src/main/java/org/apache/atlas/discovery/EntitySearchProcessor.java index f4ac8ab..a4a638a 100644 --- a/repository/src/main/java/org/apache/atlas/discovery/EntitySearchProcessor.java +++ b/repository/src/main/java/org/apache/atlas/discovery/EntitySearchProcessor.java @@ -173,12 +173,17 @@ public class EntitySearchProcessor extends SearchProcessor { CollectionUtils.filter(entityVertices, inMemoryPredicate); if (graphQuery != null) { - AtlasGraphQuery guidQuery = context.getGraph().query().in(Constants.GUID_PROPERTY_KEY, getGuids(entityVertices)); - - guidQuery.addConditionsFrom(graphQuery); + Set guids = getGuids(entityVertices); entityVertices.clear(); - getVertices(guidQuery.vertices().iterator(), entityVertices); + + if (CollectionUtils.isNotEmpty(guids)) { + AtlasGraphQuery guidQuery = context.getGraph().query().in(Constants.GUID_PROPERTY_KEY, guids); + + guidQuery.addConditionsFrom(graphQuery); + + getVertices(guidQuery.vertices().iterator(), entityVertices); + } } } else { Iterator queryResult = graphQuery.vertices(qryOffset, limit).iterator(); @@ -211,12 +216,17 @@ public class EntitySearchProcessor extends SearchProcessor { LOG.debug("==> EntitySearchProcessor.filter({})", entityVertices.size()); } - AtlasGraphQuery query = context.getGraph().query().in(Constants.GUID_PROPERTY_KEY, getGuids(entityVertices)); - - query.addConditionsFrom(filterGraphQuery); + Set guids = getGuids(entityVertices); entityVertices.clear(); - getVertices(query.vertices().iterator(), entityVertices); + + if (CollectionUtils.isNotEmpty(guids)) { + AtlasGraphQuery query = context.getGraph().query().in(Constants.GUID_PROPERTY_KEY, guids); + + query.addConditionsFrom(filterGraphQuery); + + getVertices(query.vertices().iterator(), entityVertices); + } super.filter(entityVertices);