mirror of https://github.com/apache/lucene.git
Refactored to use typed arrays instead of generic lists. (thanks to Otis)
However, the array of objects returned are no longer guaranteed to be unique. Clients should construct a Set out of the objectResults if uniqueness is required. git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@150770 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
06e1cc92d3
commit
5420a95069
|
@ -1,13 +1,9 @@
|
||||||
import org.apache.log4j.Category;
|
import org.apache.log4j.Category;
|
||||||
import org.apache.lucene.document.Document;
|
import org.apache.lucene.document.Document;
|
||||||
import org.apache.lucene.search.Hits;
|
import org.apache.lucene.search.Hits;
|
||||||
|
import search.SearchResultFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import search.SearchResultFactory;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -27,8 +23,8 @@ import search.SearchResultFactory;
|
||||||
public class SearchResults
|
public class SearchResults
|
||||||
{
|
{
|
||||||
private static Category cat = Category.getInstance(SearchResults.class);
|
private static Category cat = Category.getInstance(SearchResults.class);
|
||||||
private List hitsDocuments;
|
private Document[] hitsDocuments;
|
||||||
private List objectResults;
|
private Object[] objectResults;
|
||||||
private int totalNumberOfResults;
|
private int totalNumberOfResults;
|
||||||
|
|
||||||
public SearchResults(Hits hits) throws IOException
|
public SearchResults(Hits hits) throws IOException
|
||||||
|
@ -38,7 +34,7 @@ public class SearchResults
|
||||||
|
|
||||||
public SearchResults(Hits hits, int from, int to) throws IOException
|
public SearchResults(Hits hits, int from, int to) throws IOException
|
||||||
{
|
{
|
||||||
hitsDocuments = new ArrayList();
|
hitsDocuments = new Document[hits.length()];
|
||||||
totalNumberOfResults = hits.length();
|
totalNumberOfResults = hits.length();
|
||||||
if (to > totalNumberOfResults)
|
if (to > totalNumberOfResults)
|
||||||
{
|
{
|
||||||
|
@ -46,7 +42,7 @@ public class SearchResults
|
||||||
}
|
}
|
||||||
for (int i = from; i < to; i++)
|
for (int i = from; i < to; i++)
|
||||||
{
|
{
|
||||||
hitsDocuments.add(hits.doc(i));
|
hitsDocuments[i] = hits.doc(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,19 +54,17 @@ public class SearchResults
|
||||||
/**
|
/**
|
||||||
* Obtain the results of the search as objects.
|
* Obtain the results of the search as objects.
|
||||||
*/
|
*/
|
||||||
public List getResultsAsObjects()
|
public Object[] getResultsAsObjects()
|
||||||
{
|
{
|
||||||
if (objectResults == null)
|
if (objectResults == null)
|
||||||
{
|
{
|
||||||
objectResults = new ArrayList();
|
objectResults = new Object[hitsDocuments.length];
|
||||||
for (Iterator it = hitsDocuments.iterator(); it.hasNext();)
|
for (int i = 0; i < hitsDocuments.length; i++)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Object o = SearchResultFactory.
|
objectResults[i] = SearchResultFactory.
|
||||||
getDocAsObject((Document) it.next());
|
getDocAsObject(hitsDocuments[i]);
|
||||||
if (!objectResults.contains(o))
|
|
||||||
objectResults.add(o);
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue