/** * Hook method that creates a FieldRunMerger instance * @throws IOException if an I/O error occurs. */ protected void createFieldRunMerger(String[][] files) throws Exception{ merger = new RunsMerger(new FileRunIteratorFactory(files, FieldPostingInRun.class, super.numFields)); }
/** * Begins the merge, initilialising the structures. * Notice that the file names must be in order of run-id * @param size number of runs in disk. * @param fileName String with the file name of the final inverted file. * @throws IOException if an I/O error occurs. */ protected void init(int size, String fileName) throws Exception{ this.init(size, new BitOutputStream(fileName)); }
else createRunMerger(_fileNames); merger.beginMerge(_fileNames.length, path + ApplicationSetup.FILE_SEPARATOR + prefix + ".inverted.bf"); while(!merger.isDone()){ merger.mergeOne(lexStream); merger.endMerge(lexStream); lexStream.close(); numberOfUniqueTerms = merger.getNumberOfTerms(); numberOfPointers = merger.getNumberOfPointers();
lexStream.writeNextEntry(lastTermWritten, termStatistics); startOffset.setOffset(this.getByteOffset(), this.getBitOffset());
/** * Hook method that creates a RunsMerger instance * @throws IOException if an I/O error occurs. */ protected void createRunMerger(String[][] files) throws Exception{ merger = new RunsMerger(new FileRunIteratorFactory(files, useFieldInformation ? FieldPostingInRun.class : SimplePostingInRun.class, 0)); }
/** * Begins the multiway merging phase. * @param size number of runs to be merged. * @param fileName output filename. * @throws Exception if an I/O error occurs. */ public void beginMerge(int size, String fileName) throws Exception{ init(size, fileName); myRun = queue.poll(); while(myRun.current().getTerm().equals(" ")) myRun = queue.poll(); lastDocument = myRun.current().append(bos,-1); termStatistics = myRun.current().getLexiconEntry(); lastFreq = myRun.current().getTF(); lastDocFreq = myRun.current().getDf(); lastTermWritten = myRun.current().getTerm(); if(myRun.hasNext()){ myRun.next(); queue.add(myRun); }else{ myRun.close(); } }
protected void createFieldRunMerger(String[][] files) throws IOException{ merger = new RunsMerger(new FileRunIteratorFactory(files, BlockFieldPostingInRun.class, super.numFields)); }
protected void createRunMerger(String[][] files) throws Exception{ merger = new RunsMerger(new FileRunIteratorFactory(files, BlockPostingInRun.class, 0)); }
/** {@inheritDoc} */ @Override protected void createRunMerger(String[][] files) throws Exception{ //modified to use getPostingInRunClass() merger = new RunsMerger(new FileRunIteratorFactory(files, getPostingInRunClass(), 0)); }