Merged 5.2.N (5.2.2) to HEAD (5.2)

136080 gjames: Merged searchbcr (5.2.1) to 5.2.N (5.2.1)
      135510 gjames: SEARCH-372: Adding filterQuery to the result, wip


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@137452 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrei Rebegea
2017-06-15 10:58:36 +00:00
parent 21cbaef6a3
commit 97c6e79205
5 changed files with 105 additions and 9 deletions

View File

@@ -54,16 +54,23 @@ public class FacetFieldContext
public static class Bucket
{
private final String label;
private final String filterQuery;
private final int count;
private final Object display;
public Bucket(String label, int count, Object display)
public Bucket(String label, String filterQuery, int count, Object display)
{
this.label = label;
this.filterQuery = filterQuery;
this.count = count;
this.display = display;
}
public String getFilterQuery()
{
return filterQuery;
}
public Object getDisplay()
{
return display;
@@ -78,5 +85,48 @@ public class FacetFieldContext
{
return count;
}
@Override
public boolean equals(Object o)
{
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Bucket bucket = (Bucket) o;
if (count != bucket.count)
return false;
if (label != null ? !label.equals(bucket.label) : bucket.label != null)
return false;
if (filterQuery != null ? !filterQuery.equals(bucket.filterQuery) : bucket.filterQuery != null)
return false;
if (display != null ? !display.equals(bucket.display) : bucket.display != null)
return false;
return true;
}
@Override
public int hashCode()
{
int result = label != null ? label.hashCode() : 0;
result = 31 * result + (filterQuery != null ? filterQuery.hashCode() : 0);
result = 31 * result + count;
result = 31 * result + (display != null ? display.hashCode() : 0);
return result;
}
@Override
public String toString()
{
return "Bucket{" +
"label='" + label + '\'' +
", filterQuery='" + filterQuery + '\'' +
", count=" + count +
", display=" + display +
'}';
}
}
}

View File

@@ -31,14 +31,21 @@ package org.alfresco.rest.api.search.context;
public class FacetQueryContext
{
private final String label;
private final String filterQuery;
private final int count;
public FacetQueryContext(String label, int count)
public FacetQueryContext(String label, String filterQuery, int count)
{
this.label = label;
this.filterQuery = filterQuery;
this.count = count;
}
public String getFilterQuery()
{
return filterQuery;
}
public String getLabel()
{
return label;
@@ -48,4 +55,43 @@ public class FacetQueryContext
{
return count;
}
@Override
public boolean equals(Object o)
{
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
FacetQueryContext that = (FacetQueryContext) o;
if (count != that.count)
return false;
if (label != null ? !label.equals(that.label) : that.label != null)
return false;
if (filterQuery != null ? !filterQuery.equals(that.filterQuery) : that.filterQuery != null)
return false;
return true;
}
@Override
public int hashCode()
{
int result = label != null ? label.hashCode() : 0;
result = 31 * result + (filterQuery != null ? filterQuery.hashCode() : 0);
result = 31 * result + count;
return result;
}
@Override
public String toString()
{
return "FacetQueryContext{" +
"label='" + label + '\'' +
", filterQuery='" + filterQuery + '\'' +
", count=" + count +
'}';
}
}

View File

@@ -276,7 +276,7 @@ public class ResultMapper
facetResults = new ArrayList<>(facetQueries.size());
for (Entry<String, Integer> fq:facetQueries.entrySet())
{
facetResults.add(new FacetQueryContext(fq.getKey(), fq.getValue()));
facetResults.add(new FacetQueryContext(fq.getKey(), ":NOT_DONE", fq.getValue()));
}
}
@@ -312,7 +312,7 @@ public class ResultMapper
for (Pair<String, Integer> buck:facet.getValue())
{
Object display = withDisplay?propertyLookup.lookup(facet.getKey(), buck.getFirst()):null;
buckets.add(new Bucket(buck.getFirst(), buck.getSecond(), display));
buckets.add(new Bucket(buck.getFirst(), facet.getKey()+":NOT_DONE", buck.getSecond(), display));
}
ffcs.add(new FacetFieldContext(facet.getKey(), buckets));
}

View File

@@ -268,7 +268,7 @@ public class ResultMapperTests
assertTrue(mapper.isNullContext(new SearchContext(0l,null,null,null,null)));
assertFalse(mapper.isNullContext(new SearchContext(1l,null,null,null,null)));
assertFalse(mapper.isNullContext(new SearchContext(0l,null,null,null,new SpellCheckContext(null, null))));
assertFalse(mapper.isNullContext(new SearchContext(0l,Arrays.asList(new FacetQueryContext(null, 0)),null,null,null)));
assertFalse(mapper.isNullContext(new SearchContext(0l,Arrays.asList(new FacetQueryContext(null, null, 0)),null,null,null)));
assertFalse(mapper.isNullContext(new SearchContext(0l,null,Arrays.asList(new FacetFieldContext(null, null)),null,null)));
assertFalse(mapper.isNullContext(new SearchContext(0l,null,null,Arrays.asList(new FacetFieldContext(null, null)),null)));
}

View File

@@ -171,19 +171,19 @@ public class SearchQuerySerializerTests
{
ExecutionResult exec1 = new ExecutionResult(new Farmer("180"),null);
FacetFieldContext ffc = new FacetFieldContext("theLabel", Arrays.asList(new Bucket("b1", 23, "displayText1"), new Bucket("b2", 34, "displayText2")));
SearchContext searchContext = new SearchContext(23l, Arrays.asList(new FacetQueryContext("f1", 15), new FacetQueryContext("f2", 20)),
FacetFieldContext ffc = new FacetFieldContext("theLabel", Arrays.asList(new Bucket("b1", "name:b1", 23, "displayText1"), new Bucket("b2", null, 34, "displayText2")));
SearchContext searchContext = new SearchContext(23l, Arrays.asList(new FacetQueryContext("f1", "creator:bob", 15), new FacetQueryContext("f2", null, 20)),
Arrays.asList(ffc), null,
new SpellCheckContext("aFlag", Arrays.asList("bish", "bash")));
CollectionWithPagingInfo<ExecutionResult> coll = CollectionWithPagingInfo.asPaged(null, Arrays.asList(exec1), false, 2, null, searchContext);
String out = helper.writeResponse(coll);
assertTrue("There must 'context' json output", out.contains("\"context\":{\"consistency\":{\"lastTxId\":23}"));
assertTrue("There must 'facetQueries' json output", out.contains("\"facetQueries\":"));
assertTrue("There must 'facetQueries f1' json output", out.contains("{\"label\":\"f1\",\"count\":15}"));
assertTrue("There must 'facetQueries f1' json output", out.contains("{\"label\":\"f1\",\"filterQuery\":\"creator:bob\",\"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 'bucket1' json output", out.contains("{\"label\":\"b1\",\"count\":23,\"display\":\"displayText1\"}"));
assertTrue("There must 'bucket1' json output", out.contains("{\"label\":\"b1\",\"filterQuery\":\"name:b1\",\"count\":23,\"display\":\"displayText1\"}"));
assertTrue("There must 'bucket2' json output", out.contains("{\"label\":\"b2\",\"count\":34,\"display\":\"displayText2\"}"));
searchContext = new SearchContext(-1, null, null,null, null);