Class Full

  • All Implemented Interfaces:
    Matching
    Direct Known Subclasses:
    FatFull

    public class Full
    extends BaseMatching
    Performs the matching of documents with a query, by first assigning scores to documents for each query term and modifying these scores with the appropriate modifiers. Documents are matched in a document-at-a-time fashion. In particular, the posting lists for all query terms are processed in parallel (but without threads). In comparison to TAAT matching, this reduces the memory consumption during matching, as documents which will not make the final retrieved set are discarded. After matching, the document score modifiers are applied if necessary. This Matching strategy uses the PostingListManager for opening and scoring postings.
    Since:
    3.5
    Author:
    Nicola Tonellotto and Craig Macdonald
    See Also:
    PostingListManager
    • Constructor Detail

      • Full

        public Full​(Index index)
        Create a new Matching instance based on the specified index
    • Method Detail

      • match

        public ResultSet match​(java.lang.String queryNumber,
                               MatchingQueryTerms queryTerms)
                        throws java.io.IOException
        Get a ResultSet for the given query terms.
        Specified by:
        match in interface Matching
        Specified by:
        match in class BaseMatching
        Parameters:
        queryNumber - - some ID of the query
        queryTerms - - query terms to match
        Returns:
        ResultSet - the matched results
        Throws:
        java.io.IOException - if a problem occurs during matching
      • makeResultSet

        protected CandidateResultSet makeResultSet​(org.terrier.matching.daat.Full.DAATFullMatchingState state,
                                                   java.util.Queue<CandidateResult> candidateResultList)
      • makeCandidateResult

        protected CandidateResult makeCandidateResult​(org.terrier.matching.daat.Full.DAATFullMatchingState state,
                                                      int currentDocId)
      • assignNotScore

        protected void assignNotScore​(org.terrier.matching.daat.Full.DAATFullMatchingState state,
                                      int i,
                                      CandidateResult cc)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • assignScore

        protected void assignScore​(org.terrier.matching.daat.Full.DAATFullMatchingState state,
                                   int i,
                                   CandidateResult cc)
                            throws java.io.IOException
        assign the score for this posting to this candidate result.
        Parameters:
        i - which query term index this represents
        cc - the candidate result object for this document
        Throws:
        java.io.IOException
      • selectMinimumDocId

        protected static final int selectMinimumDocId​(it.unimi.dsi.fastutil.longs.LongPriorityQueue postingHeap)
        returns the docid of the lowest posting
      • getInfo

        public java.lang.String getInfo()
        Return a human readable description of this Matching class
        Specified by:
        getInfo in interface Matching
        Specified by:
        getInfo in class BaseMatching