mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.2.N (5.2.1) to HEAD (5.2)
130171 gjames: Merged searchapi (5.2.1) to 5.2.N (5.2.1) 129779 gjames: SEARCH-118: Adding search.score to node response git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@130322 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -34,6 +34,7 @@ import java.util.Map;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.rest.api.search.model.SearchEntry;
|
||||
import org.alfresco.rest.framework.resource.UniqueId;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -91,6 +92,9 @@ public class Node implements Comparable<Node>
|
||||
|
||||
protected List<String> allowableOperations;
|
||||
|
||||
//optional SearchEntry (only ever returned from a search)
|
||||
protected SearchEntry search = null;
|
||||
|
||||
public Node(NodeRef nodeRef, NodeRef parentNodeRef, Map<QName, Serializable> nodeProps, Map<String, UserInfo> mapUserInfo, ServiceRegistry sr)
|
||||
{
|
||||
if(nodeRef == null)
|
||||
@@ -464,6 +468,10 @@ public class Node implements Comparable<Node>
|
||||
{
|
||||
sb.append(", allowableOperations=").append(getAllowableOperations());
|
||||
}
|
||||
if (getSearch() != null)
|
||||
{
|
||||
sb.append(", search=").append(getSearch());
|
||||
}
|
||||
sb.append("]");
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -498,7 +506,15 @@ public class Node implements Comparable<Node>
|
||||
this.association = association;
|
||||
}
|
||||
|
||||
public SearchEntry getSearch()
|
||||
{
|
||||
return search;
|
||||
}
|
||||
|
||||
public void setSearch(SearchEntry search)
|
||||
{
|
||||
this.search = search;
|
||||
}
|
||||
// TODO for backwards compat' - set explicitly when needed (ie. favourites) (note: we could choose to have separate old Node/NodeImpl etc)
|
||||
|
||||
protected String title;
|
||||
|
@@ -30,6 +30,7 @@ import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.rest.api.Nodes;
|
||||
import org.alfresco.rest.api.model.Node;
|
||||
import org.alfresco.rest.api.model.UserInfo;
|
||||
import org.alfresco.rest.api.search.model.SearchEntry;
|
||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||
import org.alfresco.rest.framework.resource.parameters.Paging;
|
||||
import org.alfresco.rest.framework.resource.parameters.Params;
|
||||
@@ -78,8 +79,8 @@ public class ResultMapper
|
||||
results.forEach(row ->
|
||||
{
|
||||
Node aNode = nodes.getFolderOrDocument(row.getNodeRef(), null, null, params.getInclude(), null);
|
||||
//float f = row.getScore();
|
||||
//Long dbId = (Long) row.getValue(ContentModel.PROP_NODE_DBID);
|
||||
float f = row.getScore();
|
||||
aNode.setSearch(new SearchEntry(f));
|
||||
noderesults.add(aNode);
|
||||
}
|
||||
);
|
||||
|
@@ -0,0 +1,21 @@
|
||||
package org.alfresco.rest.api.search.model;
|
||||
|
||||
/**
|
||||
* POJO class representing the extra information that comes back from Search.
|
||||
**/
|
||||
public class SearchEntry
|
||||
{
|
||||
Float score;
|
||||
|
||||
public SearchEntry(Float score)
|
||||
{
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Float getScore()
|
||||
{
|
||||
return score;
|
||||
}
|
||||
|
||||
//In future highlighting.
|
||||
}
|
@@ -121,10 +121,12 @@ public class ResultMapperTests
|
||||
public void testToCollectionWithPagingInfo() throws Exception
|
||||
{
|
||||
ResultSet results = mockResultset();
|
||||
CollectionWithPagingInfo<Node> collection = mapper.toCollectionWithPagingInfo(mockParams(),results);
|
||||
assertNotNull(collection);
|
||||
CollectionWithPagingInfo<Node> collectionWithPage = mapper.toCollectionWithPagingInfo(mockParams(),results);
|
||||
assertNotNull(collectionWithPage);
|
||||
Long found = results.getNumberFound();
|
||||
assertEquals(found.intValue(), collection.getTotalItems().intValue());
|
||||
assertEquals(found.intValue(), collectionWithPage.getTotalItems().intValue());
|
||||
Node firstNode = collectionWithPage.getCollection().stream().findFirst().get();
|
||||
assertNotNull(firstNode.getSearch().getScore());
|
||||
}
|
||||
|
||||
private ResultSet mockResultset() throws JSONException
|
||||
|
Reference in New Issue
Block a user