All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.terrier.structures.indexing.singlepass.BlockPosting Maven / Gradle / Ivy

The newest version!

/*
 * Terrier - Terabyte Retriever
 * Webpage: http://terrier.org
 * Contact: terrier{a.}dcs.gla.ac.uk
 * University of Glasgow - School of Computing Science
 * http://www.gla.ac.uk/
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 * the License for the specific language governing rights and limitations
 * under the License.
 *
 * The Original Code is BlockPosting.java.
 *
 * The Original Code is Copyright (C) 2004-2020 the University of Glasgow.
 * All Rights Reserved.
 *
 * Contributor(s):
 *   Roi Blanco (rblanc{at}@udc.es)
 *   Craig Macdonald (craigm{at}dcs.gla.ac.uk)
 */
package org.terrier.structures.indexing.singlepass;

import java.io.IOException;

/**
 * Class representing a posting list in memory with block information
 * It keeps the information for DF, TF, maxtf, and the sequence [doc, tf, blockCount, [blockId]] 
 * @author Roi Blanco
 *
 */
class BlockPosting extends Posting{
	
	/**
	 * Writes the first document in the posting list.
	 * @param doc the document identifier.
	 * @param frequency the frequency of the term in the document.
	 * @param blockids the blockids for all the term
	 * @throws IOException if an I/O error ocurrs.
	 */	
	public int writeFirstDoc(final int doc, final int frequency, final int[] blockids) throws IOException{
		super.writeFirstDoc(doc, frequency);
		final int blockCount = blockids.length;
		
		docIds.writeUnary(blockCount+1);
		if (blockCount > 0)
		{	
			docIds.writeGamma(blockids[0]+1);
			for (int i=1; i 0)
		{	
			docIds.writeGamma(blockids[0]+1);
			for (int i=1; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy