Added support for result set meta data

Added size limits for result sets
Updated/improved comments

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2573 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2006-03-23 15:14:22 +00:00
parent 75ce410028
commit 57e7a4f77e
16 changed files with 705 additions and 30 deletions

View File

@@ -60,6 +60,7 @@ import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.search.ResultSetRow;
import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.EqualsHelper;
import org.alfresco.util.ISO9075;
@@ -1689,7 +1690,7 @@ public class LuceneIndexerImpl extends LuceneBase implements LuceneIndexer
throw new LuceneIndexException(
"Failed to execute query to find content which needs updating in the index", e);
}
results = new LuceneResultSet(hits, searcher, nodeService, null);
results = new LuceneResultSet(hits, searcher, nodeService, null, new SearchParameters());
for (ResultSetRow row : results)
{

View File

@@ -21,11 +21,16 @@ import java.io.IOException;
import org.alfresco.repo.search.AbstractResultSet;
import org.alfresco.repo.search.ResultSetRowIterator;
import org.alfresco.repo.search.SearcherException;
import org.alfresco.repo.search.SimpleResultSetMetaData;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.search.LimitBy;
import org.alfresco.service.cmr.search.PermissionEvaluationMode;
import org.alfresco.service.cmr.search.ResultSetMetaData;
import org.alfresco.service.cmr.search.ResultSetRow;
import org.alfresco.service.cmr.search.SearchParameters;
import org.apache.lucene.document.Document;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.Searcher;
@@ -47,18 +52,21 @@ public class LuceneResultSet extends AbstractResultSet
private NodeService nodeService;
SearchParameters searchParameters;
/**
* Wrap a lucene seach result with node support
*
* @param storeRef
* @param hits
*/
public LuceneResultSet(Hits hits, Searcher searcher, NodeService nodeService, Path[]propertyPaths)
public LuceneResultSet(Hits hits, Searcher searcher, NodeService nodeService, Path[]propertyPaths, SearchParameters searchParameters)
{
super(propertyPaths);
this.hits = hits;
this.searcher = searcher;
this.nodeService = nodeService;
this.searchParameters = searchParameters;
}
/*
@@ -149,4 +157,10 @@ public class LuceneResultSet extends AbstractResultSet
{
return getRow(n).getChildAssocRef();
}
public ResultSetMetaData getResultSetMetaData()
{
return new SimpleResultSetMetaData(LimitBy.UNLIMITED, PermissionEvaluationMode.EAGER, searchParameters);
}
}

View File

@@ -255,7 +255,7 @@ public class LuceneSearcherImpl extends LuceneBase implements LuceneSearcher
}
return new LuceneResultSet(hits, searcher, nodeService, searchParameters.getAttributePaths().toArray(
new Path[0]));
new Path[0]), searchParameters);
}
catch (ParseException e)
@@ -290,7 +290,7 @@ public class LuceneSearcherImpl extends LuceneBase implements LuceneSearcher
}
Hits hits = searcher.search(query);
return new LuceneResultSet(hits, searcher, nodeService, searchParameters.getAttributePaths().toArray(
new Path[0]));
new Path[0]), searchParameters);
}
catch (SAXPathException e)
{