diff --git a/source/java/org/alfresco/rest/api/search/context/SearchContext.java b/source/java/org/alfresco/rest/api/search/context/SearchContext.java index f61adb336c..b3436c4fa0 100644 --- a/source/java/org/alfresco/rest/api/search/context/SearchContext.java +++ b/source/java/org/alfresco/rest/api/search/context/SearchContext.java @@ -35,9 +35,9 @@ public class SearchContext private final Consistency consistency; private final List facetQueries; private final SpellCheckContext spellCheck; - private final FacetFieldContext facetsFields; + private final List facetsFields; - public SearchContext(long lastTxId, List facetQueries, FacetFieldContext facetsFields, SpellCheckContext spellCheck) + public SearchContext(long lastTxId, List facetQueries, List facetsFields, SpellCheckContext spellCheck) { this.spellCheck = spellCheck; if (lastTxId > 0) @@ -67,7 +67,7 @@ public class SearchContext return spellCheck; } - public FacetFieldContext getFacetsFields() + public List getFacetsFields() { return facetsFields; } diff --git a/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java b/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java index 599679439d..0147e3d47b 100644 --- a/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java +++ b/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java @@ -141,7 +141,7 @@ public class ResultMapper Map facetQueries = solrResultSet.getFacetQueries(); List facetResults = null; SpellCheckContext spellCheckContext = null; - FacetFieldContext ffc = null; + List ffcs = null; //Facet queries if(facetQueries!= null && !facetQueries.isEmpty()) @@ -157,6 +157,7 @@ public class ResultMapper Map>> facetFields = solrResultSet.getFieldFacets(); if (facetFields != null && !facetFields.isEmpty()) { + ffcs = new ArrayList<>(facetFields.size()); for (Entry>> facet:facetFields.entrySet()) { if (facet.getValue() != null && !facet.getValue().isEmpty()) @@ -166,7 +167,7 @@ public class ResultMapper { buckets.add(new Bucket(buck.getFirst(), buck.getSecond())); } - ffc = new FacetFieldContext(facet.getKey(), buckets); + ffcs.add(new FacetFieldContext(facet.getKey(), buckets)); } } } @@ -179,7 +180,7 @@ public class ResultMapper } //Put it all together - context = new SearchContext(solrResultSet.getLastIndexedTxId(), facetResults, ffc, spellCheckContext); + context = new SearchContext(solrResultSet.getLastIndexedTxId(), facetResults, ffcs, spellCheckContext); return isNullContext(context)?null:context; } diff --git a/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java b/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java index 31c94502f0..f6e5baca50 100644 --- a/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java +++ b/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java @@ -146,8 +146,9 @@ public class ResultMapperTests assertEquals("searchInsteadFor",searchContext.getSpellCheck().getType()); assertEquals(1,searchContext.getSpellCheck().getSuggestions().size()); assertEquals("alfresco",searchContext.getSpellCheck().getSuggestions().get(0)); - assertEquals("content.size",searchContext.getFacetsFields().getLabel()); - assertEquals(5,searchContext.getFacetsFields().getBuckets().size()); + assertEquals(1, searchContext.getFacetsFields().size()); + assertEquals("content.size",searchContext.getFacetsFields().get(0).getLabel()); + assertEquals(5,searchContext.getFacetsFields().get(0).getBuckets().size()); } @Test @@ -157,7 +158,7 @@ public class ResultMapperTests assertFalse(mapper.isNullContext(new SearchContext(1l,null,null,null))); assertFalse(mapper.isNullContext(new SearchContext(0l,null,null,new SpellCheckContext(null, null)))); assertFalse(mapper.isNullContext(new SearchContext(0l,Arrays.asList(new FacetQueryContext(null, 0)),null,null))); - assertFalse(mapper.isNullContext(new SearchContext(0l,null,new FacetFieldContext(null, null),null))); + assertFalse(mapper.isNullContext(new SearchContext(0l,null,Arrays.asList(new FacetFieldContext(null, null)),null))); } private ResultSet mockResultset(List archivedNodes) throws JSONException diff --git a/source/test-java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java b/source/test-java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java index c9207f5669..0a9a59feee 100644 --- a/source/test-java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java +++ b/source/test-java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java @@ -118,7 +118,7 @@ public class SearchQuerySerializerTests FacetFieldContext ffc = new FacetFieldContext("theLabel", Arrays.asList(new Bucket("b1", 23), new Bucket("b2", 34))); SearchContext searchContext = new SearchContext(23l, Arrays.asList(new FacetQueryContext("f1", 15), new FacetQueryContext("f2", 20)), - ffc, + Arrays.asList(ffc), new SpellCheckContext("aFlag", Arrays.asList("bish", "bash"))); CollectionWithPagingInfo coll = CollectionWithPagingInfo.asPaged(null, Arrays.asList(exec1), false, 2, null, searchContext); String out = helper.writeResponse(coll); @@ -127,7 +127,7 @@ public class SearchQuerySerializerTests assertTrue("There must 'facetQueries f1' json output", out.contains("{\"label\":\"f1\",\"count\":15}")); assertTrue("There must 'facetQueries f2' json output", out.contains("{\"label\":\"f2\",\"count\":20}")); assertTrue("There must 'spellCheck' json output", out.contains("\"spellCheck\":{\"type\":\"aFlag\",\"suggestions\":[\"bish\",\"bash\"]}")); - assertTrue("There must 'facetsFields' json output", out.contains("\"facetsFields\":{\"label\":\"theLabel\",\"buckets\"")); + assertTrue("There must 'facetsFields' json output", out.contains("\"facetsFields\":[{\"label\":\"theLabel\",\"buckets\"")); assertTrue("There must 'bucket1' json output", out.contains("{\"label\":\"b1\",\"count\":23}")); assertTrue("There must 'bucket2' json output", out.contains("{\"label\":\"b2\",\"count\":34}"));