mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged searchrep (5.2.1) to 5.2.N (5.2.1)
136623 gjames: SEARCH-409: Initial solr stats api git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137032 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -120,6 +120,7 @@ public class ResultMapperTests
|
||||
+ " \"_DEFAULT_!800001579e3d1964!800001579e3d1969\": {\"name\": [\"some very <al>long<fresco> name\"],\"title\": [\"title1 is very <al>long<fresco>\"], \"DBID\": \"521\"},"
|
||||
+ " \"_DEFAULT_!800001579e3d1964!800001579e3d196a\": {\"name\": [\"this is some <al>long<fresco> text. It\", \" has the word <al>long<fresco> in many places\", \". In fact, it has <al>long<fresco> on some\", \" happens to <al>long<fresco> in this case.\"], \"DBID\": \"1475846153692\"}"
|
||||
+ "},"
|
||||
+ "\"stats\":{\"stats_fields\":{\"creator\":{\"min\":\"System\",\"max\":\"mjackson\",\"count\":\"990\",\"missing\":\"290\"}, \"created\":{\"sumOfSquares\":2.1513045770343806E27,\"min\":\"2011-02-15T20:16:27.080Z\",\"max\":\"2017-04-10T15:06:30.143Z\",\"mean\":\"2016-09-05T04:20:12.898Z\",\"count\":990,\"missing\":290,\"sum\":1.458318720769983E15,\"stddev\":5.6250677994522545E10}}},"
|
||||
+ "\"processedDenies\":true, \"lastIndexedTx\":34}";
|
||||
public static final Params EMPTY_PARAMS = Params.valueOf((String)null,(String)null,(WebScriptRequest) null);
|
||||
public static final String FROZEN_ID = "frozen";
|
||||
@@ -305,7 +306,7 @@ public class ResultMapperTests
|
||||
assertEquals("last",intervalFacets.get(0).getBuckets().get(0).getLabel());
|
||||
assertEquals("cm:creator:<a TO b]",intervalFacets.get(0).getBuckets().get(0).getFilterQuery());
|
||||
assertEquals(METRIC_TYPE.count,intervalFacets.get(0).getBuckets().get(0).getMetrics().get(0).getType());
|
||||
assertEquals(4,intervalFacets.get(0).getBuckets().get(0).getMetrics().get(0).getValue().get("count"));
|
||||
assertEquals("4",intervalFacets.get(0).getBuckets().get(0).getMetrics().get(0).getValue().get("count"));
|
||||
|
||||
//Requests search Query
|
||||
assertNotNull(searchContext.getRequest());
|
||||
@@ -334,6 +335,8 @@ public class ResultMapperTests
|
||||
assertEquals("admin",nestedBucket2.getLabel());
|
||||
assertEquals("modifier:admin",nestedBucket2.getFilterQuery());
|
||||
assertEquals("{count=4}",nestedBucket2.getMetrics().get(0).getValue().toString());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -390,24 +393,24 @@ public class ResultMapperTests
|
||||
assertEquals("last",intervalFacets.get(0).getBuckets().get(0).getLabel());
|
||||
assertEquals("cm:creator:<a TO b]",intervalFacets.get(0).getBuckets().get(0).getFilterQuery());
|
||||
assertEquals(METRIC_TYPE.count,intervalFacets.get(0).getBuckets().get(0).getMetrics().get(0).getType());
|
||||
assertEquals(4,intervalFacets.get(0).getBuckets().get(0).getMetrics().get(0).getValue().get("count"));
|
||||
assertEquals("4",intervalFacets.get(0).getBuckets().get(0).getMetrics().get(0).getValue().get("count"));
|
||||
|
||||
|
||||
assertEquals("TheCreated",intervalFacets.get(1).getLabel());
|
||||
assertEquals("earlier",intervalFacets.get(1).getBuckets().get(0).getLabel());
|
||||
assertEquals("cm:created:[* TO 2016>",intervalFacets.get(1).getBuckets().get(0).getFilterQuery());
|
||||
assertEquals(METRIC_TYPE.count,intervalFacets.get(1).getBuckets().get(0).getMetrics().get(0).getType());
|
||||
assertEquals(5,intervalFacets.get(1).getBuckets().get(0).getMetrics().get(0).getValue().get("count"));
|
||||
assertEquals("5",intervalFacets.get(1).getBuckets().get(0).getMetrics().get(0).getValue().get("count"));
|
||||
|
||||
assertEquals("lastYear",intervalFacets.get(1).getBuckets().get(1).getLabel());
|
||||
assertEquals("cm:created:[2016 TO 2017>",intervalFacets.get(1).getBuckets().get(1).getFilterQuery());
|
||||
assertEquals(METRIC_TYPE.count,intervalFacets.get(1).getBuckets().get(1).getMetrics().get(0).getType());
|
||||
assertEquals(0,intervalFacets.get(1).getBuckets().get(1).getMetrics().get(0).getValue().get("count"));
|
||||
assertEquals("0",intervalFacets.get(1).getBuckets().get(1).getMetrics().get(0).getValue().get("count"));
|
||||
|
||||
assertEquals("currentYear",intervalFacets.get(1).getBuckets().get(2).getLabel());
|
||||
assertEquals("cm:created:[NOW/YEAR TO NOW/YEAR+1YEAR]",intervalFacets.get(1).getBuckets().get(2).getFilterQuery());
|
||||
assertEquals(METRIC_TYPE.count,intervalFacets.get(1).getBuckets().get(2).getMetrics().get(0).getType());
|
||||
assertEquals(854,intervalFacets.get(1).getBuckets().get(2).getMetrics().get(0).getValue().get("count"));
|
||||
assertEquals("854",intervalFacets.get(1).getBuckets().get(2).getMetrics().get(0).getValue().get("count"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -62,6 +62,7 @@ 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.alfresco.service.cmr.search.StatsRequestParameters;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -584,17 +585,88 @@ public class SearchMapperTests
|
||||
assertEquals(searchParameters.getHighlight(), highlightParameters);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fromStats() throws Exception
|
||||
{
|
||||
SearchParameters searchParameters = new SearchParameters();
|
||||
searchMapper.fromStats(searchParameters, null);
|
||||
|
||||
List<StatsRequestParameters> statsRequestParameters = new ArrayList<>(1);
|
||||
statsRequestParameters.add(new StatsRequestParameters(null, null, null, null, null,null, null, null, null,null, null, null,null, null, null, null));
|
||||
|
||||
try
|
||||
{
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
}
|
||||
catch (IllegalArgumentException iae)
|
||||
{
|
||||
assertTrue(iae.getLocalizedMessage().contains("field is a mandatory parameter"));
|
||||
}
|
||||
|
||||
statsRequestParameters.clear();
|
||||
statsRequestParameters.add(new StatsRequestParameters("cm:content", "myLabel", null, null,null, null, null, null,null, null, null, null,null, null, null, null));
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
assertEquals(1 ,searchParameters.getStats().size());
|
||||
|
||||
statsRequestParameters.clear();
|
||||
statsRequestParameters.add(new StatsRequestParameters("cm:content", "myLabel", Arrays.asList(3.4f, 12f, 10f), null, null,null, null, null, null,null, null, null,null, null, null, null));
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
assertEquals(1 ,searchParameters.getStats().size());
|
||||
|
||||
statsRequestParameters.clear();
|
||||
statsRequestParameters.add(new StatsRequestParameters("cm:content", "myLabel", Arrays.asList(-3.4f), null, null,null, null, null, null,null, null, null,null, null, null, null));
|
||||
|
||||
try
|
||||
{
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
}
|
||||
catch (IllegalArgumentException iae)
|
||||
{
|
||||
assertTrue(iae.getLocalizedMessage().contains("Invalid percentile -3.4"));
|
||||
}
|
||||
|
||||
statsRequestParameters.clear();
|
||||
statsRequestParameters.add(new StatsRequestParameters("cm:content", "myLabel", Arrays.asList(101f),null, null,null, null, null, null,null, null, null,null, null, null, null));
|
||||
|
||||
try
|
||||
{
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
}
|
||||
catch (IllegalArgumentException iae)
|
||||
{
|
||||
assertTrue(iae.getLocalizedMessage().contains("Invalid percentile 101"));
|
||||
}
|
||||
|
||||
statsRequestParameters.clear();
|
||||
statsRequestParameters.add(new StatsRequestParameters("cm:content", "myLabel", null, null,null, null, null, null,null, null, null, null,null, true, 12f, null));
|
||||
try
|
||||
{
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
}
|
||||
catch (IllegalArgumentException iae)
|
||||
{
|
||||
assertTrue(iae.getLocalizedMessage().contains("Invalid cardinality accuracy 12.0"));
|
||||
}
|
||||
|
||||
statsRequestParameters.clear();
|
||||
statsRequestParameters.add(new StatsRequestParameters("cm:content", "myLabel", null, null,null, null, null, null,null, null, null, null,null, null, 12f, null));
|
||||
searchMapper.fromStats(searchParameters, statsRequestParameters);
|
||||
//cardinality is ignored if not true
|
||||
assertEquals(1 ,searchParameters.getStats().size());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fromPivot() throws Exception
|
||||
{
|
||||
SearchParameters searchParameters = new SearchParameters();
|
||||
searchMapper.fromPivot(searchParameters,null, null, null);
|
||||
searchMapper.fromPivot(searchParameters, null, null, null, null);
|
||||
|
||||
List<FacetField> facets = new ArrayList<>(1);
|
||||
facets.add(new FacetField("myfield",null,null,null,null,null,null,null,null,null,null));
|
||||
FacetFields ff = new FacetFields(facets);
|
||||
searchMapper.fromFacetFields(searchParameters,ff);
|
||||
searchMapper.fromPivot(searchParameters,ff, null, null);
|
||||
searchMapper.fromPivot(searchParameters, null, ff, null, null);
|
||||
assertEquals(1 ,searchParameters.getFieldFacets().size());
|
||||
assertEquals(0 ,searchParameters.getPivots().size());
|
||||
|
||||
@@ -603,7 +675,7 @@ public class SearchMapperTests
|
||||
|
||||
try
|
||||
{
|
||||
searchMapper.fromPivot(searchParameters,ff, Arrays.asList(new Pivot(null)), null);
|
||||
searchMapper.fromPivot(searchParameters, null, ff, Arrays.asList(new Pivot(null)), null);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException iae)
|
||||
@@ -614,7 +686,7 @@ public class SearchMapperTests
|
||||
|
||||
try
|
||||
{
|
||||
searchMapper.fromPivot(searchParameters,ff, Arrays.asList(new Pivot("")), null);
|
||||
searchMapper.fromPivot(searchParameters, null, ff, Arrays.asList(new Pivot("")), null);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException iae)
|
||||
@@ -623,20 +695,25 @@ public class SearchMapperTests
|
||||
assertNotNull(iae);
|
||||
}
|
||||
|
||||
SearchRequestContext searchRequestContext = SearchRequestContext.from(minimalQuery());
|
||||
|
||||
//"bob" doesn't refer to a field facet but its the last one so lets be kind
|
||||
searchMapper.fromPivot(searchParameters, null, ff, Arrays.asList(new Pivot("bob")), searchRequestContext);
|
||||
|
||||
try
|
||||
{
|
||||
searchMapper.fromPivot(searchParameters,ff, Arrays.asList(new Pivot("bob")), null);
|
||||
searchMapper.fromPivot(searchParameters, null, ff, Arrays.asList(new Pivot("ken"),new Pivot("bob")), searchRequestContext);
|
||||
fail();
|
||||
}
|
||||
catch (InvalidArgumentException iae)
|
||||
{
|
||||
//"bob" doesn't refer to a field facet
|
||||
//"ken" doesn't refer to a field facet and its not the last one
|
||||
assertNotNull(iae);
|
||||
}
|
||||
|
||||
searchParameters = new SearchParameters();
|
||||
SearchRequestContext searchRequestContext = SearchRequestContext.from(minimalQuery());
|
||||
searchMapper.fromPivot(searchParameters,ff, Arrays.asList(new Pivot("myfield")), searchRequestContext);
|
||||
|
||||
searchMapper.fromPivot(searchParameters, null, ff, Arrays.asList(new Pivot("myfield")), searchRequestContext);
|
||||
searchMapper.fromFacetFields(searchParameters,ff);
|
||||
//Moved from a field facet to a pivot
|
||||
assertEquals(0 ,searchParameters.getFieldFacets().size());
|
||||
@@ -717,7 +794,7 @@ public class SearchMapperTests
|
||||
private SearchQuery minimalQuery()
|
||||
{
|
||||
Query query = new Query("cmis", "foo", "");
|
||||
SearchQuery sq = new SearchQuery(query, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
SearchQuery sq = new SearchQuery(query, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
return sq;
|
||||
}
|
||||
@Test
|
||||
|
@@ -166,6 +166,10 @@ public class SearchQuerySerializerTests
|
||||
|
||||
assertEquals(1,searchQuery.getPivots().size());
|
||||
assertEquals("mylabel",searchQuery.getPivots().get(0).getKey());
|
||||
|
||||
assertEquals(1,searchQuery.getStats().size());
|
||||
assertEquals("cm:creator",searchQuery.getStats().get(0).getField());
|
||||
assertEquals("mylabel",searchQuery.getStats().get(0).getLabel());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -70,6 +70,7 @@ public class SerializerTestHelper implements RequestReader
|
||||
+ "},"
|
||||
+ "{\"label\":\"TheCreated\",\"field\":\"cm:created\",\"sets\":[{\"label\":\"lastYear\",\"start\":\"2016\",\"end\":\"2017\",\"endInclusive\":false},{\"label\":\"currentYear\",\"start\":\"NOW/YEAR\",\"end\":\"NOW/YEAR+1YEAR\"},{\"label\":\"earlier\",\"start\":\"*\",\"end\":\"2016\",\"endInclusive\":false}]}"
|
||||
+ "]},"
|
||||
+ "\"stats\": [{\"field\": \"cm:creator\", \"label\": \"mylabel\"}],"
|
||||
+ "\"spellcheck\": {\"query\": \"alfrezco\"},"
|
||||
+ "\"limits\": {\"permissionEvaluationCount\": \"2000\",\"permissionEvaluationTime\": \"5000\"},"
|
||||
+ "\"scope\": { \"locations\": [\"nodes\"]},"
|
||||
|
Reference in New Issue
Block a user