From 2c250be45bc1c2486d992df948574e56444aac6d Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Thu, 27 Aug 2015 20:35:23 +0000 Subject: [PATCH] Fix for ACE-2004 SOLR 4 - Support filtering of query results git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@111060 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- source/java/org/alfresco/repo/jscript/Search.java | 8 ++++++++ .../repo/search/impl/solr/SolrQueryHTTPClient.java | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/source/java/org/alfresco/repo/jscript/Search.java b/source/java/org/alfresco/repo/jscript/Search.java index b69e11e9dc..dd57f4f585 100644 --- a/source/java/org/alfresco/repo/jscript/Search.java +++ b/source/java/org/alfresco/repo/jscript/Search.java @@ -578,6 +578,7 @@ public class Search extends BaseScopableProcessorExtension implements Initializi List> sort = (List>)def.get("sort"); Map page = (Map)def.get("page"); List facets = (List)def.get("fieldFacets"); + List filterQueries = (List)def.get("filterQueries"); String namespace = (String)def.get("namespace"); String onerror = (String)def.get("onerror"); String defaultField = (String)def.get("defaultField"); @@ -739,6 +740,13 @@ public class Search extends BaseScopableProcessorExtension implements Initializi } } } + if (filterQueries != null) + { + for (String filter: filterQueries) + { + sp.addFilterQuery(filter); + } + } // error handling opions boolean exceptionOnError = true; diff --git a/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java b/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java index f9fab97b90..29fc753cf2 100644 --- a/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java +++ b/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java @@ -490,6 +490,13 @@ public class SolrQueryHTTPClient implements BeanFactoryAware url.append("&facet.query=").append(encoder.encode("{!afts}"+facetQuery, "UTF-8")); } } + // filter queries + + for(String filterQuery : searchParameters.getFilterQueries()) + { + url.append("&fq=").append(encoder.encode("{!afts}"+filterQuery, "UTF-8")); + } + // end of field facets final String searchTerm = searchParameters.getSearchTerm();