Minor changes.

This commit is contained in:
Paul Masurel
2016-07-29 17:21:55 +09:00
parent 04556c454a
commit bf2c95bb14
6 changed files with 24 additions and 28 deletions

View File

@@ -93,6 +93,7 @@ mod tests {
use super::*;
use test::Bencher;
use ScoredDoc;
#[bench]
fn build_collector(b: &mut Bencher) {
@@ -100,7 +101,7 @@ mod tests {
let mut count_collector = CountCollector::new();
let docs: Vec<u32> = (0..1_000_000).collect();
for doc in docs {
count_collector.collect(doc, 1f32);
count_collector.collect(ScoredDoc(1f32, doc));
}
count_collector.count()
});

View File

@@ -199,7 +199,7 @@ mod tests {
assert_eq!(remaining_data.len(), 0);
}
for i in 0..128 {
assert_eq!(vals[i], decoder.output()[i]);
assert_eq!(vals[i], decoder.output(i));
}
}
@@ -214,7 +214,7 @@ mod tests {
assert_eq!(remaining_data.len(), 0);
}
for i in 0..128 {
assert_eq!(vals[i], decoder.output()[i]);
assert_eq!(vals[i], decoder.output(i));
}
}
@@ -234,7 +234,7 @@ mod tests {
assert_eq!(remaining_data[0], 173u8);
}
for i in 0..n {
assert_eq!(vals[i], decoder.output()[i]);
assert_eq!(vals[i], decoder.output(i));
}
}
@@ -254,7 +254,7 @@ mod tests {
assert_eq!(remaining_data[0], 173u8);
}
for i in 0..n {
assert_eq!(vals[i], decoder.output()[i]);
assert_eq!(vals[i], decoder.output(i));
}
}
@@ -274,7 +274,7 @@ mod tests {
let mut decoder = SIMDBlockDecoder::new();
let remaining_data = decoder.uncompress_vint_sorted(&encoded_data, *offset, input.len());
assert_eq!(0, remaining_data.len());
for (&decoded, &expected) in decoder.output().iter().zip(input.iter()) {
for (&decoded, &expected) in decoder.output_array().iter().zip(input.iter()) {
assert_eq!(decoded, expected);
}
}

View File

@@ -15,7 +15,7 @@ use num_cpus;
use core::segment_serializer::SegmentSerializer;
#[derive(Clone, PartialEq, Eq, Hash,RustcDecodable,RustcEncodable)]
#[derive(Clone, Copy, PartialEq, Eq, Hash,RustcDecodable,RustcEncodable)]
pub struct SegmentId(Uuid);
impl SegmentId {
@@ -48,6 +48,12 @@ impl IndexMeta {
schema: schema,
}
}
fn segment_ordinal(&self, segment_id: SegmentId) -> Option<usize> {
self.segments
.iter()
.position(|&el| el == segment_id)
}
}
impl fmt::Debug for Index {
@@ -147,10 +153,8 @@ impl Index {
pub fn publish_merge_segment(&mut self, segments: &Vec<Segment>, merged_segment: &Segment) -> io::Result<()> {
{
let mut meta_write = self.metas.write().unwrap();
for segment in segments.iter() {
let segment_pos = meta_write
.segments.iter()
.position(|el| *el == segment.id());
for segment in segments {
let segment_pos = meta_write.segment_ordinal(segment.id());
match segment_pos {
Some(pos) => {
meta_write.segments.remove(pos);
@@ -176,17 +180,16 @@ impl Index {
}
pub fn segments(&self,) -> Vec<Segment> {
// TODO handle error
self.segment_ids()
.into_iter()
.map(|segment_id| self.segment(&segment_id))
.map(|segment_id| self.segment(segment_id))
.collect()
}
pub fn segment(&self, segment_id: &SegmentId) -> Segment {
pub fn segment(&self, segment_id: SegmentId) -> Segment {
Segment {
index: self.clone(),
segment_id: segment_id.clone()
segment_id: segment_id
}
}
@@ -201,7 +204,7 @@ impl Index {
}
pub fn new_segment(&self,) -> Segment {
self.segment(&SegmentId::new())
self.segment(SegmentId::new())
}
pub fn load_metas(&mut self,) -> io::Result<()> {
@@ -262,7 +265,7 @@ impl Segment {
}
pub fn id(&self,) -> SegmentId {
self.segment_id.clone()
self.segment_id
}
fn path_suffix(component: &SegmentComponent)-> &'static str {

View File

@@ -226,7 +226,7 @@ mod tests {
use schema::Document;
use schema::Term;
use core::index::Index;
use core::searcher::DocAddress;
use DocAddress;
use collector::FastFieldTestCollector;
use collector::TestCollector;
use query::MultiTermQuery;

View File

@@ -41,7 +41,8 @@ impl SegmentWriter {
// - the dictionary in an fst
// - the postings
// - the segment info
// The segment writer cannot be used after this.
// The segment writer cannot be used after this, which is
// enforced by the fact that "self" is moved.
pub fn finalize(mut self,) -> io::Result<()> {
let segment_info = self.segment_info();
self.postings_writer.close();

View File

@@ -5,15 +5,6 @@ use std::fmt;
use std::path::Path;
use directory::{ReadOnlySource, WritePtr};
///////////////////////////////////////////////////////////////
//
// #[derive(Debug)]
// pub enum CreateError {
// RootDirectoryDoesNotExist,
// DirectoryAlreadyExists,
// CannotCreateTempDirectory(io::Error),
// }
pub trait Directory: fmt::Debug + Send + Sync {
fn open_read(&self, path: &Path) -> io::Result<ReadOnlySource>;
fn open_write(&mut self, path: &Path) -> io::Result<WritePtr>;