Parallel indexing
This commit is contained in:
@@ -15,7 +15,7 @@ use crate::{Item, Key};
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct FtsLookupResult {
|
||||
pub score: f32,
|
||||
pub source_name: String,
|
||||
pub source_name: Label,
|
||||
pub key: String,
|
||||
}
|
||||
|
||||
@@ -87,7 +87,9 @@ impl DbFtsIndex {
|
||||
let json = item.json()?;
|
||||
let mut empty = true;
|
||||
for name in self.fts_cfg().fields.keys() {
|
||||
let val = match self.get_field(&json, name)? {
|
||||
let x = self.get_field(&json, name)?;
|
||||
|
||||
let val = match x {
|
||||
Some(x) => x,
|
||||
None => continue,
|
||||
};
|
||||
@@ -246,7 +248,6 @@ impl DbFtsIndex {
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
|
||||
let query: String = query.into();
|
||||
let index = Index::open_in_dir(&self.path)?;
|
||||
let reader = index
|
||||
.reader_builder()
|
||||
@@ -260,6 +261,7 @@ impl DbFtsIndex {
|
||||
fields.push(f.0)
|
||||
}
|
||||
|
||||
let query: String = query.into();
|
||||
let searcher = reader.searcher();
|
||||
let query_parser = QueryParser::for_index(&index, fields);
|
||||
let query = query_parser.parse_query(&query)?;
|
||||
@@ -277,6 +279,7 @@ impl DbFtsIndex {
|
||||
for v in retrieved_doc.get_all(f_source) {
|
||||
assert!(source.is_none()); // Must only exist once
|
||||
let v = v.as_str().unwrap().to_owned();
|
||||
let v = Label::new(v).unwrap();
|
||||
source = Some(v)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user