open segment

This commit is contained in:
Paul Masurel
2016-01-20 10:59:57 +09:00
parent 3d2d28d164
commit cff364be66
2 changed files with 19 additions and 19 deletions

View File

@@ -132,7 +132,7 @@ impl Segment {
}
}
fn relative_path(&self, component: SegmentComponent) -> PathBuf {
pub fn relative_path(&self, component: SegmentComponent) -> PathBuf {
let SegmentId(ref segment_id_str) = self.segment_id;
let filename = String::new() + segment_id_str + Segment::path_suffix(component);
PathBuf::from(filename)

View File

@@ -3,7 +3,7 @@ use core::directory::Segment;
use core::schema::Term;
use fst::Streamer;
use fst;
// use fst::raw::{Fst, FstData};
use fst::raw::Fst;
use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use std::borrow::Borrow;
use std::io::Cursor;
@@ -92,23 +92,23 @@ pub struct SegmentIndexReader {
}
impl SegmentIndexReader {
//
// pub fn open(segment: Segment) -> Result<SegmentIndexReader> {
// let term_shared_mmap = try!(segment.mmap(SegmentComponent::TERMS));
// let term_offsets = match Fst::new(FstData::Mmap(term_shared_mmap)).map(fst::Map) {
// Ok(term_offsets) => term_offsets,
// Err(_) => {
// let filepath = segment.relative_path(SegmentComponent::TERMS);
// return Err(Error::FSTFormat(format!("The file {:?} does not seem to be a valid term to offset transducer.", filepath)));
// }
// };
// let postings_shared_mmap = try!(segment.mmap(SegmentComponent::POSTINGS));
// Ok(SegmentIndexReader {
// postings_data: postings_shared_mmap,
// term_offsets: term_offsets,
// segment: segment,
// })
// }
pub fn open(segment: Segment) -> Result<SegmentIndexReader> {
let term_shared_mmap = try!(segment.mmap(SegmentComponent::TERMS));
let term_offsets = match fst::Map::from_mmap(term_shared_mmap) {
Ok(term_offsets) => term_offsets,
Err(_) => {
let filepath = segment.relative_path(SegmentComponent::TERMS);
return Err(Error::FSTFormat(format!("The file {:?} does not seem to be a valid term to offset transducer.", filepath)));
}
};
let postings_shared_mmap = try!(segment.mmap(SegmentComponent::POSTINGS));
Ok(SegmentIndexReader {
postings_data: postings_shared_mmap,
term_offsets: term_offsets,
segment: segment,
})
}
}