Class 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
    • 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 document
      void 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 retrieval
      int 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 has
      short[] 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 retrieval
      int getStatusCode()
      Returns a status code for the result set
      boolean 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 score
      void sort​(int topDocs)
      Sorts the top topDocs document in this resultset be first.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • docids

        protected int[] docids
      • scores

        protected double[] scores
      • occurrences

        protected short[] occurrences
      • resultSize

        protected int resultSize
      • exactResultSize

        protected int exactResultSize
      • lock

        protected java.util.concurrent.locks.Lock lock
      • statusCode

        protected int statusCode
    • 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.
        Specified by:
        getLock in interface ResultSet
        Returns:
        the lock.
      • getStatusCode

        public int getStatusCode()
        Returns a status code for the result set
        Specified by:
        getStatusCode in interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        Returns:
        the list of key names
      • allMetaItems

        public java.lang.String[][] allMetaItems()
        Specified by:
        allMetaItems in interface ResultSet
      • getDocids

        public int[] getDocids()
        Description copied from interface: ResultSet
        Returns the documents ids after retrieval
        Specified by:
        getDocids in interface ResultSet
        Returns:
        the docids
      • getScores

        public double[] getScores()
        Description copied from interface: ResultSet
        Returns the documents scores after retrieval
        Specified by:
        getScores in interface ResultSet
        Returns:
        score list in same order as docids array
      • getOccurrences

        public short[] getOccurrences()
        Description copied from interface: ResultSet
        Returns the occurrences array.
        Specified by:
        getOccurrences in interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
      • 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 interface ResultSet
        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 interface ResultSet
        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 interface ResultSet
        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
        Specified by:
        sort in interface ResultSet
      • sort

        public void sort​(int topDocs)
        Description copied from interface: ResultSet
        Sorts the top topDocs document in this resultset be first. The order of the remaining documents is undefined.
        Specified by:
        sort in interface ResultSet
        Parameters:
        topDocs - number of documents to top-rank