Package org.terrier.matching.daat
Class CandidateResultSet
- java.lang.Object
-
- org.terrier.matching.daat.CandidateResultSet
-
- All Implemented Interfaces:
java.io.Serializable
,ResultSet
- Direct Known Subclasses:
FatCandidateResultSet
public class CandidateResultSet extends java.lang.Object implements ResultSet, java.io.Serializable
ResultSet which is created from a set of CandidateResults. Used by DAAT matching strategies.- Since:
- 3.5
- Author:
- Nicola Tonellotto
- See Also:
CandidateResult
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]
docids
protected int
exactResultSize
protected java.util.concurrent.locks.Lock
lock
protected short[]
occurrences
protected int
resultSize
protected double[]
scores
protected int
statusCode
-
Constructor Summary
Constructors Modifier Constructor Description protected
CandidateResultSet()
CandidateResultSet(java.util.Collection<CandidateResult> _q)
Create a ResultSet from the specified queue of resultsCandidateResultSet(java.util.List<CandidateResult> _q)
Create a ResultSet from the specified list of results
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addMetaItem(java.lang.String name, int docid, java.lang.String value)
Adds a metadata value for a given documentvoid
addMetaItems(java.lang.String name, java.lang.String[] values)
Adds the metadata values for all the documents in the result set.java.lang.String[][]
allMetaItems()
int[]
getDocids()
Returns the documents ids after retrievalint
getExactResultSize()
Returns the exact size of the result set.java.util.concurrent.locks.Lock
getLock()
Returns the lock associated with the result set.java.lang.String
getMetaItem(java.lang.String name, int docid)
Gets a metadata value for a given document.java.lang.String[]
getMetaItems(java.lang.String name)
Gets the metadata information for all documents.java.lang.String[]
getMetaKeys()
Returns the names of the meta keys which this resultset hasshort[]
getOccurrences()
Returns the occurrences array.ResultSet
getResultSet(int[] positions)
Extracts a subset of the resultset given by the list parameter, which contains a list of positions in the resultset that should be saved.ResultSet
getResultSet(int start, int length)
Crops the existing result file and extracts a subset from the given starting point, with the given length.int
getResultSize()
Returns the effective size of the result set.double[]
getScores()
Returns the documents scores after retrievalint
getStatusCode()
Returns a status code for the result setboolean
hasMetaItems(java.lang.String name)
Returns true if the resultset already has a set of metaitems with the specified name.void
initialise()
Initialises the arrays prior of retrieval.void
initialise(double[] scs)
Initialises the result set with the given scores.void
setExactResultSize(int newExactResultSize)
Sets the exact size of the result set, that is the number of documents that contain at least one query term.void
setResultSize(int newResultSize)
Sets the effective size of the result set, that is the number of documents to be sorted after retrieval.void
setStatusCode(int _statusCode)
Sets the status code.void
sort()
Sorts all documents in this resultset by descending scorevoid
sort(int topDocs)
Sorts the top topDocs document in this resultset be first.
-
-
-
Constructor Detail
-
CandidateResultSet
protected CandidateResultSet()
-
CandidateResultSet
public CandidateResultSet(java.util.Collection<CandidateResult> _q)
Create a ResultSet from the specified queue of results
-
CandidateResultSet
public CandidateResultSet(java.util.List<CandidateResult> _q)
Create a ResultSet from the specified list of results
-
-
Method Detail
-
getLock
public java.util.concurrent.locks.Lock getLock()
Returns the lock associated with the result set. The lock is used for modifying the result set concurrently by more than one threads.
-
getStatusCode
public int getStatusCode()
Returns a status code for the result set- Specified by:
getStatusCode
in interfaceResultSet
- Returns:
- a integer status code. 0 stands success. 1 stands for empty result set. 2 stands for wrong setting of start/end parameters. 3 stands for query timeout. The values assigned to the status codes are increasing accordingly to the severity of the status.
-
setStatusCode
public void setStatusCode(int _statusCode)
Sets the status code.- Specified by:
setStatusCode
in interfaceResultSet
- Parameters:
_statusCode
- - the code to return to the user
-
addMetaItem
public void addMetaItem(java.lang.String name, int docid, java.lang.String value)
Description copied from interface:ResultSet
Adds a metadata value for a given document- Specified by:
addMetaItem
in interfaceResultSet
- Parameters:
name
- the name of the metadata type. For example, it can be url for adding the URLs of documents.docid
- the document identifier of the document.value
- the metadata value.
-
addMetaItems
public void addMetaItems(java.lang.String name, java.lang.String[] values)
Description copied from interface:ResultSet
Adds the metadata values for all the documents in the result set. The length of the metadata array values should be equal to the length of the docids array.- Specified by:
addMetaItems
in interfaceResultSet
- Parameters:
name
- the name of the metadata type. For example, it can be url for adding the URLs of documents.values
- the metadata values.
-
getMetaItem
public java.lang.String getMetaItem(java.lang.String name, int docid)
Description copied from interface:ResultSet
Gets a metadata value for a given document. If the requested metadata information is not specified, then we return null.- Specified by:
getMetaItem
in interfaceResultSet
- Parameters:
name
- the name of the metadata type.docid
- the document identifier of the document.- Returns:
- a string with the metadata information, or null of the metadata is not available.
-
getMetaItems
public java.lang.String[] getMetaItems(java.lang.String name)
Description copied from interface:ResultSet
Gets the metadata information for all documents. If the requested metadata information is not specified, then we return null.- Specified by:
getMetaItems
in interfaceResultSet
- Parameters:
name
- the name of the metadata type.- Returns:
- an array of strings with the metadata information, or null of the metadata is not available.
-
hasMetaItems
public boolean hasMetaItems(java.lang.String name)
Description copied from interface:ResultSet
Returns true if the resultset already has a set of metaitems with the specified name.- Specified by:
hasMetaItems
in interfaceResultSet
- Parameters:
name
- of the desired metaitem set- Returns:
- true if the set exists.
-
getMetaKeys
public java.lang.String[] getMetaKeys()
Description copied from interface:ResultSet
Returns the names of the meta keys which this resultset has- Specified by:
getMetaKeys
in interfaceResultSet
- Returns:
- the list of key names
-
allMetaItems
public java.lang.String[][] allMetaItems()
- Specified by:
allMetaItems
in interfaceResultSet
-
getDocids
public int[] getDocids()
Description copied from interface:ResultSet
Returns the documents ids after retrieval
-
getScores
public double[] getScores()
Description copied from interface:ResultSet
Returns the documents scores after retrieval
-
getOccurrences
public short[] getOccurrences()
Description copied from interface:ResultSet
Returns the occurrences array.- Specified by:
getOccurrences
in interfaceResultSet
- Returns:
- short[] the array the occurrences array.
-
getResultSize
public int getResultSize()
Description copied from interface:ResultSet
Returns the effective size of the result set.- Specified by:
getResultSize
in interfaceResultSet
- Returns:
- int the effective size of the result set
-
getExactResultSize
public int getExactResultSize()
Description copied from interface:ResultSet
Returns the exact size of the result set.- Specified by:
getExactResultSize
in interfaceResultSet
- Returns:
- int the exact size of the result set
-
getResultSet
public ResultSet getResultSet(int start, int length)
Crops the existing result file and extracts a subset from the given starting point, with the given length.- Specified by:
getResultSet
in interfaceResultSet
- Parameters:
start
- the beginning of the subset.length
- the length of the subset.- Returns:
- a subset of the current result set.
-
getResultSet
public ResultSet getResultSet(int[] positions)
Description copied from interface:ResultSet
Extracts a subset of the resultset given by the list parameter, which contains a list of positions in the resultset that should be saved.- Specified by:
getResultSet
in interfaceResultSet
- Parameters:
positions
- the list of elements in the current list that should be kept.- Returns:
- a subset of the current result set specified by the list.
-
initialise
public void initialise()
Description copied from interface:ResultSet
Initialises the arrays prior of retrieval.- Specified by:
initialise
in interfaceResultSet
-
initialise
public void initialise(double[] scs)
Description copied from interface:ResultSet
Initialises the result set with the given scores. If the length of the given array is different than the length of the internal arrays, then we re-allocate memory and create the arrays.- Specified by:
initialise
in interfaceResultSet
- Parameters:
scs
- double[] the scores to initiliase the result set with.
-
setExactResultSize
public void setExactResultSize(int newExactResultSize)
Description copied from interface:ResultSet
Sets the exact size of the result set, that is the number of documents that contain at least one query term.- Specified by:
setExactResultSize
in interfaceResultSet
- Parameters:
newExactResultSize
- int the effective size of the result set.
-
setResultSize
public void setResultSize(int newResultSize)
Description copied from interface:ResultSet
Sets the effective size of the result set, that is the number of documents to be sorted after retrieval.- Specified by:
setResultSize
in interfaceResultSet
- Parameters:
newResultSize
- int the effective size of the result set.
-
sort
public void sort()
Description copied from interface:ResultSet
Sorts all documents in this resultset by descending score
-
-