From a5c81061e5517c074e3a8a0b4ba8816acb10409d Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Wed, 26 Oct 2016 08:51:01 +0000 Subject: [PATCH] Fix for SEARCH-222 SOLR 6 - Improved indexing for categories - return ancestor based path for better support to internationalise categories etc (by UUID matching the public AIP) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@131769 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../java/org/alfresco/solr/client/NodeMetaData.java | 13 ++++++++++++- .../org/alfresco/solr/client/SOLRAPIClient.java | 13 ++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/NodeMetaData.java b/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/NodeMetaData.java index a747176eb..6fb038834 100644 --- a/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/NodeMetaData.java +++ b/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/NodeMetaData.java @@ -56,7 +56,8 @@ public class NodeMetaData private String owner; private long txnId; private Set ancestors; - private String tenantDomain; + private String tenantDomain; + private List ancestorPaths; public long getId() { @@ -117,6 +118,16 @@ public class NodeMetaData public void setPaths(List> paths) { this.paths = paths; + } + + public List getAncestorPaths() + { + return ancestorPaths; + } + + public void setAncestorPaths(List ancestorPaths) + { + this.ancestorPaths = ancestorPaths; } public List> getNamePaths() diff --git a/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/SOLRAPIClient.java b/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/SOLRAPIClient.java index 957c38c7b..d40590165 100644 --- a/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/SOLRAPIClient.java +++ b/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/SOLRAPIClient.java @@ -939,15 +939,22 @@ public class SOLRAPIClient if(jsonNodeInfo.has("paths")) { JSONArray jsonPaths = jsonNodeInfo.getJSONArray("paths"); - List> paths = new ArrayList>(jsonPaths.length()); + List> paths = new ArrayList>(jsonPaths.length()); + List ancestorPaths = new ArrayList(); for(int j = 0; j < jsonPaths.length(); j++) { JSONObject path = jsonPaths.getJSONObject(j); String pathValue = path.getString("path"); QName qname = path.has("qname") ? deserializer.deserializeValue(QName.class, path.getString("qname")) : null; - paths.add(new Pair(pathValue, qname)); + paths.add(new Pair(pathValue, qname)); + if(path.has("apath")) + { + String ancestorPath = path.getString("apath"); + ancestorPaths.add(ancestorPath); + } } - metaData.setPaths(paths); + metaData.setPaths(paths); + metaData.setAncestorPaths(ancestorPaths); } if(jsonNodeInfo.has("namePaths"))