mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-01-06 09:12:55 +00:00
Added comments. Renamed field reader
This commit is contained in:
@@ -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(),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user