Added comments. Renamed field reader

This commit is contained in:
Paul Masurel
2017-08-28 16:47:06 +09:00
parent fc25516b7a
commit 8d05b8f7b2
20 changed files with 214 additions and 125 deletions

View File

@@ -27,26 +27,27 @@ impl TermWeight {
1.0 + (self.num_docs as f32 / (self.doc_freq as f32 + 1.0)).ln()
}
/// If the field is not found, returns an empty `DocSet`.
pub fn specialized_scorer(&self,
reader: &SegmentReader)
-> Result<TermScorer<SegmentPostings>> {
let field = self.term.field();
let field_reader = reader.field_reader(field)?;
// TODO move field reader too
let inverted_index = reader.inverted_index(field)?;
let fieldnorm_reader_opt = reader.get_fieldnorms_reader(field);
let postings: Option<SegmentPostings> = field_reader.read_postings(&self.term, self.segment_postings_options);
Ok(postings
.map(|segment_postings| {
TermScorer {
idf: self.idf(),
fieldnorm_reader_opt: fieldnorm_reader_opt,
postings: segment_postings,
}
})
.unwrap_or(TermScorer {
idf: 1f32,
fieldnorm_reader_opt: None,
postings: SegmentPostings::empty(),
}))
let postings_opt: Option<SegmentPostings> = inverted_index.read_postings(&self.term, self.segment_postings_options);
if let Some(segment_postings) = postings_opt {
Ok(TermScorer {
idf: self.idf(),
fieldnorm_reader_opt: fieldnorm_reader_opt,
postings: segment_postings,
})
}
else {
Ok(TermScorer {
idf: 1f32,
fieldnorm_reader_opt: None,
postings: SegmentPostings::empty(),
})
}
}
}