@Override public void setFieldLengths(int[] newLengths) { ((FieldPosting)current).setFieldLengths(newLengths); } }
@Override public void setFieldLengths(int[] newLengths) { ((FieldPosting)current).setFieldLengths(newLengths); } }
@Override public void setFieldLengths(int[] newLengths) { ((FieldPosting)current).setFieldLengths(newLengths); }
@Override public void setFieldLengths(int[] newLengths) { ((FieldPosting)current).setFieldLengths(newLengths); }
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
((FieldPosting)p).setFieldLengths(fieldLens); postings[i][j] = p;
@Override protected void assignScore(final int i, final CandidateResult cc) throws IOException { //update the score as normal cc.updateScore(plm.score(i)); cc.updateOccurrence((i < 16) ? (short)(1 << i) : 0); //get a deep copy of the posting final Posting p = plm.getPosting(i); //writable postings don't copy or retain document length. Make this not so. final WritablePosting wp = p.asWritablePosting(); assert wp.getId() == cc.getDocId() : "Posting does not have same docid as candidate result"; wp.setDocumentLength(p.getDocumentLength()); if (fields[i]) { final int[] fieldLengths = ((FieldPosting)p).getFieldLengths(); final int[] newFieldLengths = new int[fieldCount]; System.arraycopy(fieldLengths, 0, newFieldLengths, 0, fieldCount); //System.err.println(fieldLengths); assert fieldLengths.length == super.collectionStatistics.getNumberOfFields() : " posting "+p +" for docid " + p.getId() + " has wrong number of fields for length"; ((FieldPosting)wp).setFieldLengths(newFieldLengths); } //store somewhere ((FatCandidateResult)cc).setPosting(i, wp); } }
@Override protected void assignScore(final int i, final CandidateResult cc) throws IOException { //update the score as normal cc.updateScore(plm.score(i)); cc.updateOccurrence((i < 16) ? (short)(1 << i) : 0); //get a deep copy of the posting final Posting p = plm.getPosting(i); //writable postings don't copy or retain document length. Make this not so. final WritablePosting wp = p.asWritablePosting(); assert wp.getId() == cc.getDocId() : "Posting does not have same docid as candidate result"; wp.setDocumentLength(p.getDocumentLength()); if (fields[i]) { final int[] fieldLengths = ((FieldPosting)p).getFieldLengths(); final int[] newFieldLengths = new int[fieldCount]; System.arraycopy(fieldLengths, 0, newFieldLengths, 0, fieldCount); //System.err.println(fieldLengths); assert fieldLengths.length == super.collectionStatistics.getNumberOfFields() : " posting "+p +" for docid " + p.getId() + " has wrong number of fields for length"; ((FieldPosting)wp).setFieldLengths(newFieldLengths); } //store somewhere ((FatCandidateResult)cc).setPosting(i, wp); } }
if (p == null){ p = new BlockFieldPostingImpl(docids[di], 0, new int[0], new int[4]);//hack ((FieldPosting)p).setFieldLengths(new int[4]);
if (p == null){ p = new BlockFieldPostingImpl(docids[di], 0, new int[0], new int[4]);//hack ((FieldPosting)p).setFieldLengths(new int[4]);