SEARCH-2126: Address formatting issues.

This commit is contained in:
Angel Borroy
2020-08-10 17:27:11 +02:00
parent 29d42b158a
commit f651d7f463

View File

@@ -614,12 +614,10 @@ public class AlfrescoSearchHandler extends RequestHandlerBase implements
* Facet SOLR Queries are omitting facet results with count equals to 0 as general rule. * Facet SOLR Queries are omitting facet results with count equals to 0 as general rule.
* SOLR Queries executed on a Shard environment, don't include these results but the same * SOLR Queries executed on a Shard environment, don't include these results but the same
* query executed on a single server environment are adding these elements to the response. * query executed on a single server environment are adding these elements to the response.
*
* This method removes every facet query having count equals to 0 to provide the same * This method removes every facet query having count equals to 0 to provide the same
* behaviour in both cases. * behaviour in both cases.
* *
* A query like the following, will return only Facet Queries having elements: * A query like the following, will return only Facet Queries having elements:
*
* "facetQueries" : [ * "facetQueries" : [
* { "query" : "content.size:[0 TO 102400]", "label" : "small"}, * { "query" : "content.size:[0 TO 102400]", "label" : "small"},
* { "query" : "content.size:[102400 TO 1048576]", "label" : "medium"}, * { "query" : "content.size:[102400 TO 1048576]", "label" : "medium"},
@@ -627,30 +625,26 @@ public class AlfrescoSearchHandler extends RequestHandlerBase implements
* ] * ]
* *
* For instance, if there are only results with "small" key, the result will be: * For instance, if there are only results with "small" key, the result will be:
*
* "facetQueries": [ * "facetQueries": [
* { * {
* "label": "small", * "label": "small",
* "filterQuery": "content.size:[0 TO 102400]", * "filterQuery": "content.size:[0 TO 102400]",
* "count": 5 * "count": 5
* } * }
* ]
* *
* @param rsp
*/ */
public static final String FACET_COUNTS_KEY = "facet_counts"; public static final String FACET_COUNTS_KEY = "facet_counts";
public static final String FACET_QUERIES_KEY = "facet_queries"; public static final String FACET_QUERIES_KEY = "facet_queries";
public static final String FACET_CONTEXT_KEY = "_facet.context"; public static final String FACET_CONTEXT_KEY = "_facet.context";
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void removeFacetQueriesWithCountZero(SolrQueryResponse rsp) private void removeFacetQueriesWithCountZero(SolrQueryResponse rsp)
{ {
NamedList<Object> facetCounts = (NamedList<Object>) rsp.getValues().get(FACET_COUNTS_KEY); NamedList<Object> facetCounts = (NamedList<Object>) rsp.getValues().get(FACET_COUNTS_KEY);
if (facetCounts != null) if (facetCounts != null)
{ {
NamedList<Object> facetQueries = (NamedList<Object>) facetCounts.get(FACET_QUERIES_KEY); NamedList<Object> facetQueries = (NamedList<Object>) facetCounts.get(FACET_QUERIES_KEY);
if (facetQueries != null) if (facetQueries != null)
{ {
List<String> keyCountsToRemove = new ArrayList<>(); List<String> keyCountsToRemove = new ArrayList<>();
@@ -667,13 +661,14 @@ public class AlfrescoSearchHandler extends RequestHandlerBase implements
keyCountsToRemove.forEach(key -> facetQueries.remove(key)); keyCountsToRemove.forEach(key -> facetQueries.remove(key));
((NamedList<Object>) rsp.getValues().get(FACET_COUNTS_KEY)).remove(FACET_QUERIES_KEY); ((NamedList<Object>) rsp.getValues().get(FACET_COUNTS_KEY)).remove(FACET_QUERIES_KEY);
((NamedList<Object>)rsp.getValues().get(FACET_COUNTS_KEY)).add(FACET_QUERIES_KEY, facetQueries); ((NamedList<Object>) rsp.getValues().get(FACET_COUNTS_KEY)).add(FACET_QUERIES_KEY,
facetQueries);
BasicResultContext result = (BasicResultContext) rsp.getResponse(); BasicResultContext result = (BasicResultContext) rsp.getResponse();
FacetContext facetContext = (FacetContext) result.getRequest().getContext().get(FACET_CONTEXT_KEY); FacetContext facetContext = (FacetContext) result.getRequest().getContext()
facetContext.getAllQueryFacets().removeIf(queryFacet -> .get(FACET_CONTEXT_KEY);
keyCountsToRemove.contains(queryFacet.getKey()) facetContext.getAllQueryFacets()
); .removeIf(queryFacet -> keyCountsToRemove.contains(queryFacet.getKey()));
result.getRequest().getContext().put(FACET_CONTEXT_KEY, facetContext); result.getRequest().getContext().put(FACET_CONTEXT_KEY, facetContext);
log.debug("In SOLR query '" + result.getRequest() + "', Facet Queries results having labels " log.debug("In SOLR query '" + result.getRequest() + "', Facet Queries results having labels "