Merged searchrep (5.2.1) to 5.2.N (5.2.1)

136805 msuzuki: Search-340, changed range to a collection as it may handle many range facets


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137058 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gethin James
2017-06-01 11:10:46 +00:00
parent b7918fea4b
commit 7161a8ec56
8 changed files with 87 additions and 91 deletions

View File

@@ -495,9 +495,9 @@ public class ResultMapper
List<GenericFacetResponse> ffcs = new ArrayList<>(facetFields.size()); List<GenericFacetResponse> ffcs = new ArrayList<>(facetFields.size());
if (facetFields != null && !facetFields.isEmpty() && searchQuery.getQuery() != null) if (facetFields != null && !facetFields.isEmpty() && searchQuery.getQuery() != null)
{ {
List<GenericBucket> buckets = new ArrayList<>();
for (Entry<String, List<Map<String, String>>> facet : facetFields.entrySet()) for (Entry<String, List<Map<String, String>>> facet : facetFields.entrySet())
{ {
List<GenericBucket> buckets = new ArrayList<>();
facet.getValue().forEach(action -> buckets.add(buildGenericBucketFromRange(facet.getKey(), (Map<String, String>) action))); facet.getValue().forEach(action -> buckets.add(buildGenericBucketFromRange(facet.getKey(), (Map<String, String>) action)));
ffcs.add(new GenericFacetResponse(FACET_TYPE.range, facet.getKey(), buckets)); ffcs.add(new GenericFacetResponse(FACET_TYPE.range, facet.getKey(), buckets));
} }

View File

@@ -26,6 +26,24 @@
package org.alfresco.rest.api.search.impl; package org.alfresco.rest.api.search.impl;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ASPECTNAMES;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ASSOCIATION;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ISLINK;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_PATH;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_PROPERTIES;
import static org.alfresco.service.cmr.search.SearchService.LANGUAGE_CMIS_ALFRESCO;
import static org.alfresco.service.cmr.search.SearchService.LANGUAGE_FTS_ALFRESCO;
import static org.alfresco.service.cmr.search.SearchService.LANGUAGE_LUCENE;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
import java.util.Optional;
import java.util.Set;
import java.util.regex.Matcher;
import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.search.impl.lucene.LuceneQueryLanguageSPI; import org.alfresco.repo.search.impl.lucene.LuceneQueryLanguageSPI;
import org.alfresco.rest.api.search.context.SearchRequestContext; import org.alfresco.rest.api.search.context.SearchRequestContext;
@@ -61,24 +79,6 @@ import org.alfresco.service.cmr.search.SearchParameters.SortDefinition;
import org.alfresco.service.cmr.search.SearchParameters.SortDefinition.SortType; import org.alfresco.service.cmr.search.SearchParameters.SortDefinition.SortType;
import org.alfresco.service.cmr.search.StatsRequestParameters; import org.alfresco.service.cmr.search.StatsRequestParameters;
import org.alfresco.util.ParameterCheck; import org.alfresco.util.ParameterCheck;
import sun.util.calendar.ZoneInfo;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ASSOCIATION;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ISLINK;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_PATH;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_ASPECTNAMES;
import static org.alfresco.rest.api.Nodes.PARAM_INCLUDE_PROPERTIES;
import static org.alfresco.service.cmr.search.SearchService.*;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
import java.util.Optional;
import java.util.Set;
import java.util.TimeZone;
import java.util.regex.Matcher;
/** /**
* Maps from a json request and a solr SearchParameters object. * Maps from a json request and a solr SearchParameters object.
@@ -530,16 +530,19 @@ public class SearchMapper
* @param sp SearchParameters * @param sp SearchParameters
* @param rangeParams RangeParameters * @param rangeParams RangeParameters
*/ */
public void fromRange(SearchParameters sp, RangeParameters rangeParams) public void fromRange(SearchParameters sp, List<RangeParameters> ranges)
{ {
if(rangeParams != null) if(ranges != null && !ranges.isEmpty())
{ {
ParameterCheck.mandatory("ranges", rangeParams); for(RangeParameters rangeParams : ranges)
ParameterCheck.mandatory("field", rangeParams.getField()); {
ParameterCheck.mandatory("start", rangeParams.getStart()); ParameterCheck.mandatory("ranges", rangeParams);
ParameterCheck.mandatory("end", rangeParams.getEnd()); ParameterCheck.mandatory("field", rangeParams.getField());
ParameterCheck.mandatory("gap", rangeParams.getGap()); ParameterCheck.mandatory("start", rangeParams.getStart());
sp.setRanges(rangeParams); ParameterCheck.mandatory("end", rangeParams.getEnd());
ParameterCheck.mandatory("gap", rangeParams.getGap());
}
sp.setRanges(ranges);
} }
} }

View File

@@ -61,7 +61,7 @@ public class SearchQuery
private final boolean includeRequest; private final boolean includeRequest;
private final List<Pivot> pivots; private final List<Pivot> pivots;
private final List<StatsRequestParameters> stats; private final List<StatsRequestParameters> stats;
private final RangeParameters ranges; private final List<RangeParameters> ranges;
private final String timezone; private final String timezone;
public static final SearchQuery EMPTY = new SearchQuery(null, null, null, null, null, null, public static final SearchQuery EMPTY = new SearchQuery(null, null, null, null, null, null,
@@ -87,7 +87,7 @@ public class SearchQuery
@JsonProperty("facetIntervals")IntervalParameters facetIntervals, @JsonProperty("facetIntervals")IntervalParameters facetIntervals,
@JsonProperty("pivots") List<Pivot> pivots, @JsonProperty("pivots") List<Pivot> pivots,
@JsonProperty("stats") List<StatsRequestParameters> stats, @JsonProperty("stats") List<StatsRequestParameters> stats,
@JsonProperty("ranges") RangeParameters ranges, @JsonProperty("ranges") List<RangeParameters> ranges,
@JsonProperty("timezone") String timezone) @JsonProperty("timezone") String timezone)
{ {
this.query = query; this.query = query;
@@ -201,7 +201,7 @@ public class SearchQuery
return stats; return stats;
} }
public RangeParameters getFacetRanges() public List<RangeParameters> getFacetRanges()
{ {
return ranges; return ranges;
} }

View File

@@ -118,7 +118,9 @@ public class ResultMapperTests
+ "\"facet_counts\":{\"facet_queries\":{\"small\":0,\"large\":0,\"xtra small\":3,\"xtra large\":0,\"medium\":8,\"XX large\":0}," + "\"facet_counts\":{\"facet_queries\":{\"small\":0,\"large\":0,\"xtra small\":3,\"xtra large\":0,\"medium\":8,\"XX large\":0},"
+ "\"facet_fields\":{\"content.size\":[\"Big\",8,\"Brown\",3,\"Fox\",5,\"Jumped\",2,\"somewhere\",3]}," + "\"facet_fields\":{\"content.size\":[\"Big\",8,\"Brown\",3,\"Fox\",5,\"Jumped\",2,\"somewhere\",3]},"
+"\"facet_dates\":{}," +"\"facet_dates\":{},"
+"\"facet_ranges\":{\"content.size\": {\"counts\": [\"0\",4,\"100\",6,\"200\",3],\"gap\": 100,\"start\": 0,\"end\": 300}}," +"\"facet_ranges\":{"
+ "\"created\": { \"counts\": [\"2015-09-29T10:45:15.729Z\",0,\"2016-01-07T10:45:15.729Z\",0,\"2016-04-16T10:45:15.729Z\",0,\"2016-07-25T10:45:15.729Z\",0],\"gap\": \"+100DAY\",\"start\": \"2015-09-29T10:45:15.729Z\",\"end\": \"2016-11-02T10:45:15.729Z\"},"
+ "\"content.size\": {\"counts\": [\"0\",4,\"100\",6,\"200\",3],\"gap\": 100,\"start\": 0,\"end\": 300}},"
+"\"facet_pivot\":{\"creator,modifier\":[{\"field\":\"creator\",\"count\":7,\"pivot\":[{\"field\":\"modifier\",\"count\":3,\"value\":\"mjackson\"},{\"field\":\"modifier\",\"count\":4,\"value\":\"admin\"}],\"value\":\"mjackson\"}]}," +"\"facet_pivot\":{\"creator,modifier\":[{\"field\":\"creator\",\"count\":7,\"pivot\":[{\"field\":\"modifier\",\"count\":3,\"value\":\"mjackson\"},{\"field\":\"modifier\",\"count\":4,\"value\":\"admin\"}],\"value\":\"mjackson\"}]},"
+"\"facet_intervals\":{\"creator\":{\"last\":4,\"first\":0},\"TheCreated\":{\"earlier\":5,\"lastYear\":0,\"currentYear\":854}}" +"\"facet_intervals\":{\"creator\":{\"last\":4,\"first\":0},\"TheCreated\":{\"earlier\":5,\"lastYear\":0,\"currentYear\":854}}"
+ "}," + "},"
@@ -322,8 +324,8 @@ public class ResultMapperTests
assertEquals("great", searchContext.getRequest().getQuery().getUserQuery()); assertEquals("great", searchContext.getRequest().getQuery().getUserQuery());
//Pivot //Pivot
assertEquals(6, searchContext.getFacets().size()); assertEquals(7, searchContext.getFacets().size());
GenericFacetResponse pivotFacet = searchContext.getFacets().get(3); GenericFacetResponse pivotFacet = searchContext.getFacets().get(4);
assertEquals(FACET_TYPE.pivot,pivotFacet.getType()); assertEquals(FACET_TYPE.pivot,pivotFacet.getType());
assertEquals("creator",pivotFacet.getLabel()); assertEquals("creator",pivotFacet.getLabel());
assertEquals(2, pivotFacet.getBuckets().size()); assertEquals(2, pivotFacet.getBuckets().size());
@@ -350,7 +352,7 @@ public class ResultMapperTests
assertEquals("{count=4}",metrics[0].getValue().toString()); assertEquals("{count=4}",metrics[0].getValue().toString());
//Stats //Stats
GenericFacetResponse statsFacet = searchContext.getFacets().get(4); GenericFacetResponse statsFacet = searchContext.getFacets().get(5);
assertEquals(FACET_TYPE.stats,statsFacet.getType()); assertEquals(FACET_TYPE.stats,statsFacet.getType());
assertEquals("created",statsFacet.getLabel()); assertEquals("created",statsFacet.getLabel());
Set<Metric> statsMetrics = statsFacet.getBuckets().get(0).getMetrics(); Set<Metric> statsMetrics = statsFacet.getBuckets().get(0).getMetrics();
@@ -364,7 +366,7 @@ public class ResultMapperTests
assertTrue(statsMetrics.contains(new SimpleMetric(METRIC_TYPE.sum, 1.458318720769983E15))); assertTrue(statsMetrics.contains(new SimpleMetric(METRIC_TYPE.sum, 1.458318720769983E15)));
assertTrue(statsMetrics.contains(new SimpleMetric(METRIC_TYPE.stddev, 5.6250677994522545E10))); assertTrue(statsMetrics.contains(new SimpleMetric(METRIC_TYPE.stddev, 5.6250677994522545E10)));
statsFacet = searchContext.getFacets().get(5); statsFacet = searchContext.getFacets().get(6);
assertEquals("numericLabel",statsFacet.getLabel()); assertEquals("numericLabel",statsFacet.getLabel());
statsMetrics = statsFacet.getBuckets().get(0).getMetrics(); statsMetrics = statsFacet.getBuckets().get(0).getMetrics();
assertEquals(7,statsMetrics.size()); assertEquals(7,statsMetrics.size());
@@ -473,33 +475,40 @@ public class ResultMapperTests
//Numeric facet range //Numeric facet range
List<GenericFacetResponse> rangeFacets = searchContext.getFacets().stream() List<GenericFacetResponse> rangeFacets = searchContext.getFacets().stream()
.filter(f -> f.getType().equals(FACET_TYPE.range)).collect(Collectors.toList()); .filter(f -> f.getType().equals(FACET_TYPE.range)).collect(Collectors.toList());
assertEquals(1, rangeFacets.size()); assertEquals(2, rangeFacets.size());
assertEquals(3, rangeFacets.get(0).getBuckets().size()); assertEquals(4, rangeFacets.get(0).getBuckets().size());
assertEquals("content.size",rangeFacets.get(0).getLabel()); assertEquals("created",rangeFacets.get(0).getLabel());
assertEquals("0 - 100",rangeFacets.get(0).getBuckets().get(0).getLabel()); assertEquals("2015-09-29T10:45:15.729Z - 2016-01-07T10:45:15.729Z",rangeFacets.get(0).getBuckets().get(0).getLabel());
Object[] metrics = rangeFacets.get(0).getBuckets().get(0).getMetrics().toArray(); Object[] metrics1 = rangeFacets.get(0).getBuckets().get(0).getMetrics().toArray();
assertEquals("0",((SimpleMetric) metrics1[0]).getValue().get("count"));
assertEquals("created:(2015-09-29T10:45:15.729Z TO 2016-01-07T10:45:15.729Z)", rangeFacets.get(0).getBuckets().get(0).getFilterQuery());
assertEquals(3, rangeFacets.get(1).getBuckets().size());
assertEquals("content.size",rangeFacets.get(1).getLabel());
assertEquals("0 - 100",rangeFacets.get(1).getBuckets().get(0).getLabel());
Object[] metrics = rangeFacets.get(1).getBuckets().get(0).getMetrics().toArray();
assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count")); assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count"));
assertEquals("content.size:(0 TO 100)", rangeFacets.get(0).getBuckets().get(0).getFilterQuery()); assertEquals("content.size:(0 TO 100)", rangeFacets.get(1).getBuckets().get(0).getFilterQuery());
Map<String, String> facetInfo = rangeFacets.get(0).getBuckets().get(0).getBucketInfo(); Map<String, String> facetInfo = rangeFacets.get(1).getBuckets().get(0).getBucketInfo();
assertEquals("0",facetInfo.get("from")); assertEquals("0",facetInfo.get("from"));
assertEquals("100",facetInfo.get("to")); assertEquals("100",facetInfo.get("to"));
assertEquals("100 - 200",rangeFacets.get(0).getBuckets().get(1).getLabel()); assertEquals("100 - 200",rangeFacets.get(1).getBuckets().get(1).getLabel());
metrics = rangeFacets.get(0).getBuckets().get(1).getMetrics().toArray(); metrics = rangeFacets.get(1).getBuckets().get(1).getMetrics().toArray();
assertEquals("6",((SimpleMetric) metrics[0]).getValue().get("count")); assertEquals("6",((SimpleMetric) metrics[0]).getValue().get("count"));
facetInfo = rangeFacets.get(0).getBuckets().get(1).getBucketInfo(); facetInfo = rangeFacets.get(1).getBuckets().get(1).getBucketInfo();
assertEquals("100",facetInfo.get("from")); assertEquals("100",facetInfo.get("from"));
assertEquals("200",facetInfo.get("to")); assertEquals("200",facetInfo.get("to"));
assertEquals("content.size:(100 TO 200)", rangeFacets.get(0).getBuckets().get(1).getFilterQuery()); assertEquals("content.size:(100 TO 200)", rangeFacets.get(1).getBuckets().get(1).getFilterQuery());
assertEquals("200 - 300",rangeFacets.get(0).getBuckets().get(2).getLabel()); assertEquals("200 - 300",rangeFacets.get(1).getBuckets().get(2).getLabel());
metrics = rangeFacets.get(0).getBuckets().get(2).getMetrics().toArray(); metrics = rangeFacets.get(1).getBuckets().get(2).getMetrics().toArray();
assertEquals("3",((SimpleMetric) metrics[0]).getValue().get("count")); assertEquals("3",((SimpleMetric) metrics[0]).getValue().get("count"));
facetInfo = rangeFacets.get(0).getBuckets().get(2).getBucketInfo(); facetInfo = rangeFacets.get(1).getBuckets().get(2).getBucketInfo();
assertEquals("200",facetInfo.get("from")); assertEquals("200",facetInfo.get("from"));
assertEquals("300",facetInfo.get("to")); assertEquals("300",facetInfo.get("to"));
assertEquals("content.size:(200 TO 300)", rangeFacets.get(0).getBuckets().get(2).getFilterQuery()); assertEquals("content.size:(200 TO 300)", rangeFacets.get(1).getBuckets().get(2).getFilterQuery());
} }
@Test @Test

View File

@@ -28,40 +28,14 @@ package org.alfresco.rest.api.search;
import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNotNull; import static junit.framework.TestCase.assertNotNull;
import static junit.framework.TestCase.assertTrue; import static junit.framework.TestCase.assertTrue;
import static junit.framework.TestCase.fail;
import static org.alfresco.service.cmr.repository.StoreRef.PROTOCOL_DELETED;
import static org.alfresco.service.cmr.repository.StoreRef.PROTOCOL_TEST;
import static org.alfresco.service.cmr.search.SearchService.LANGUAGE_CMIS_ALFRESCO;
import static org.alfresco.service.cmr.search.SearchService.LANGUAGE_FTS_ALFRESCO;
import static org.alfresco.service.cmr.search.SearchService.LANGUAGE_LUCENE;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import org.alfresco.rest.api.search.impl.SearchMapper;
import org.alfresco.rest.api.search.model.Default;
import org.alfresco.rest.api.search.model.FacetField;
import org.alfresco.rest.api.search.model.FacetFields;
import org.alfresco.rest.api.search.model.FacetQuery;
import org.alfresco.rest.api.search.model.FilterQuery;
import org.alfresco.rest.api.search.model.Limits;
import org.alfresco.rest.api.search.model.Query;
import org.alfresco.rest.api.search.model.Scope;
import org.alfresco.rest.api.search.model.SearchQuery;
import org.alfresco.rest.api.search.model.SortDef;
import org.alfresco.rest.api.search.model.Spelling;
import org.alfresco.rest.api.search.model.Template;
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
import org.alfresco.rest.framework.resource.parameters.Paging;
import org.alfresco.rest.framework.resource.parameters.Params;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.search.LimitBy;
import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.cmr.search.SearchParameters.FieldFacet;
import org.alfresco.service.cmr.search.SearchService;
import org.junit.Assert;
import org.junit.Test;
import java.util.Arrays; import java.util.Arrays;
import org.alfresco.rest.framework.resource.parameters.Paging;
import org.alfresco.rest.framework.resource.parameters.Params;
import org.junit.Test;
/** /**
* Tests the SearchApiWebscript class * Tests the SearchApiWebscript class
* *

View File

@@ -889,7 +889,8 @@ public class SearchMapperTests
public void facetRange() public void facetRange()
{ {
SearchParameters searchParameters = new SearchParameters(); SearchParameters searchParameters = new SearchParameters();
RangeParameters rangeParams = new RangeParameters(null, null, null, null,false,null,null,null,null); List<RangeParameters> rangeParams = new ArrayList<RangeParameters>();
rangeParams.add(new RangeParameters(null, null, null, null,false,null,null,null,null));
try try
{ {
searchMapper.fromRange(searchParameters, rangeParams); searchMapper.fromRange(searchParameters, rangeParams);
@@ -899,14 +900,21 @@ public class SearchMapperTests
{ {
assertNotNull(iae); assertNotNull(iae);
} }
rangeParams = new RangeParameters("content.size", "0", "100000", "1000",true,null,null,null,null); rangeParams.clear();
rangeParams.add(new RangeParameters("content.size", "0", "100000", "1000",true,null,null,null,null));
searchMapper.fromRange(searchParameters, rangeParams); searchMapper.fromRange(searchParameters, rangeParams);
assertEquals(searchParameters.getRanges(), rangeParams); assertEquals(searchParameters.getRanges(), rangeParams);
rangeParams = new RangeParameters("content.size", "0", "100000", "1000",true,"before","lower",null,null); rangeParams.clear();
rangeParams.add(new RangeParameters("content.size", "0", "100000", "1000",true,"before","lower",null,null));
searchMapper.fromRange(searchParameters, rangeParams); searchMapper.fromRange(searchParameters, rangeParams);
assertEquals(searchParameters.getRanges(), rangeParams); assertEquals(searchParameters.getRanges(), rangeParams);
//Assert multiple ranges
rangeParams.add(new RangeParameters("created", "2015-09-29T10:45:15.729Z", "2016-09-29T10:45:15.729Z", "+100DAY", true, "before", "lower", null, null));
searchMapper.fromRange(searchParameters, rangeParams);
assertEquals(searchParameters.getRanges(), rangeParams);
assertEquals(2,searchParameters.getRanges().size());
} }
private SearchQuery minimalQuery() private SearchQuery minimalQuery()

View File

@@ -29,8 +29,15 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import org.alfresco.rest.api.search.context.FacetFieldContext; import org.alfresco.rest.api.search.context.FacetFieldContext;
import org.alfresco.rest.api.search.context.FacetFieldContext.Bucket; import org.alfresco.rest.api.search.context.FacetFieldContext.Bucket;
import org.alfresco.rest.api.search.context.FacetQueryContext;
import org.alfresco.rest.api.search.context.SearchContext;
import org.alfresco.rest.api.search.context.SpellCheckContext; import org.alfresco.rest.api.search.context.SpellCheckContext;
import org.alfresco.rest.api.search.impl.StoreMapper; import org.alfresco.rest.api.search.impl.StoreMapper;
import org.alfresco.rest.api.search.model.Default; import org.alfresco.rest.api.search.model.Default;
@@ -38,8 +45,6 @@ import org.alfresco.rest.api.search.model.FacetField;
import org.alfresco.rest.api.search.model.SearchQuery; import org.alfresco.rest.api.search.model.SearchQuery;
import org.alfresco.rest.framework.jacksonextensions.ExecutionResult; import org.alfresco.rest.framework.jacksonextensions.ExecutionResult;
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo; import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
import org.alfresco.rest.api.search.context.SearchContext;
import org.alfresco.rest.api.search.context.FacetQueryContext;
import org.alfresco.rest.framework.tests.api.mocks.Farmer; import org.alfresco.rest.framework.tests.api.mocks.Farmer;
import org.alfresco.service.cmr.search.FieldHighlightParameters; import org.alfresco.service.cmr.search.FieldHighlightParameters;
import org.alfresco.service.cmr.search.Interval; import org.alfresco.service.cmr.search.Interval;
@@ -49,9 +54,6 @@ import org.alfresco.service.cmr.search.RangeParameters;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import java.io.IOException;
import java.util.Arrays;
/** /**
* Tests json -> SearchQuery deserialization * Tests json -> SearchQuery deserialization
* *
@@ -164,8 +166,8 @@ public class SearchQuerySerializerTests
assertEquals("cm:creator",searchQuery.getStats().get(0).getField()); assertEquals("cm:creator",searchQuery.getStats().get(0).getField());
assertEquals("mylabel",searchQuery.getStats().get(0).getLabel()); assertEquals("mylabel",searchQuery.getStats().get(0).getLabel());
//Range Facet //Range Facet
RangeParameters range = searchQuery.getFacetRanges(); List<RangeParameters> ranges = searchQuery.getFacetRanges();
assertNotNull(range); assertNotNull(ranges);
} }

View File

@@ -64,7 +64,7 @@ public class SerializerTestHelper implements RequestReader
+ "\"facetFields\": {\"facets\": [{\"field\": \"cm:creator\",\"prefix\": \"myquery2\",\"sort\": \"COUNT\",\"missing\": \"false\"}, {\"field\": \"modifier\",\"label\": \"mylabel\",\"method\": \"FC\",\"mincount\": \"5\"}, {\"field\": \"owner\",\"label\": \"ownerLabel\"}]}," + "\"facetFields\": {\"facets\": [{\"field\": \"cm:creator\",\"prefix\": \"myquery2\",\"sort\": \"COUNT\",\"missing\": \"false\"}, {\"field\": \"modifier\",\"label\": \"mylabel\",\"method\": \"FC\",\"mincount\": \"5\"}, {\"field\": \"owner\",\"label\": \"ownerLabel\"}]},"
+ "\"facetQueries\": [{\"query\": \"cm:created:bob\",\"label\": \"small\"}]," + "\"facetQueries\": [{\"query\": \"cm:created:bob\",\"label\": \"small\"}],"
+ "\"pivots\": [{\"key\": \"mylabel\"}]," + "\"pivots\": [{\"key\": \"mylabel\"}],"
+ "\"ranges\": {\"field\": \"content.size\",\"start\": \"0\",\"end\": \"300\",\"gap\": \"100\"}," + "\"ranges\": [{\"field\": \"content.size\",\"start\": \"0\",\"end\": \"300\",\"gap\": \"100\"}],"
+ "\"facetIntervals\": {\"sets\": [{ \"label\": \"king\", \"start\": \"1\", \"end\": \"2\",\"startInclusive\": true,\"endInclusive\": false}]" + "\"facetIntervals\": {\"sets\": [{ \"label\": \"king\", \"start\": \"1\", \"end\": \"2\",\"startInclusive\": true,\"endInclusive\": false}]"
+ ",\"intervals\": [{\"field\": \"cm:creator\",\"label\": \"creator\"," + ",\"intervals\": [{\"field\": \"cm:creator\",\"label\": \"creator\","
+ "\"sets\": [{\"label\": \"last\",\"start\": \"a\",\"end\": \"b\",\"startInclusive\": false}]" + "\"sets\": [{\"label\": \"last\",\"start\": \"a\",\"end\": \"b\",\"startInclusive\": false}]"