From 3110968b5b701148192963a8f9b228ee528887b6 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 --- .../web/scripts/solr/NodesMetaDataGet.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java b/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java index 58a64ff98b..cfe1ae8253 100644 --- a/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java +++ b/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java @@ -274,21 +274,27 @@ public class NodesMetaDataGet extends DeclarativeWebScript this.txnId = nodeMetaData.getTxnId(); // convert Paths to Strings - List paths = new ArrayList(); + List paths = new ArrayList(); + List ancestorPaths = new ArrayList(); HashSet ancestors = new HashSet(); if(nodeMetaData.getPaths() != null) - { + { + StringBuilder ancestorPath = new StringBuilder(); for(Pair pair : nodeMetaData.getPaths()) { JSONObject o = new JSONObject(); o.put("path", solrSerializer.serializeValue(String.class, pair.getFirst())); - o.put("qname", solrSerializer.serializeValue(String.class, pair.getSecond())); - paths.add(o.toString(3)); + o.put("qname", solrSerializer.serializeValue(String.class, pair.getSecond())); + for (NodeRef ancestor : getAncestors(pair.getFirst())) { - ancestors.add(ancestor.toString()); - } + ancestors.add(ancestor.toString()); + ancestorPath.insert(0, ancestor.getId()).insert(0, "/"); + } + + o.put("apath", ancestorPath); + paths.add(o.toString(3)); } } this.ancestors = ancestors;