.
This commit is contained in:
+27
-26
@@ -21,37 +21,38 @@ impl SearchIndexBuilder {
|
||||
}
|
||||
|
||||
pub fn build(self) -> error::Result<SearchIndex> {
|
||||
if let Some(path) = self.path {
|
||||
let ngram_32 = NgramTokenizer::new(1, 32, false)?;
|
||||
let ngram_32_lowercase = TextAnalyzer::builder(ngram_32)
|
||||
.filter(LowerCaser)
|
||||
.build();
|
||||
let ngram_32 = NgramTokenizer::new(1, 32, false)?;
|
||||
let ngram_32_lowercase = TextAnalyzer::builder(ngram_32)
|
||||
.filter(LowerCaser)
|
||||
.build();
|
||||
|
||||
let tokenizer_manager = TokenizerManager::default();
|
||||
tokenizer_manager.register("ngram_32", ngram_32_lowercase);
|
||||
let tokenizer_manager = TokenizerManager::default();
|
||||
tokenizer_manager.register("ngram_32", ngram_32_lowercase);
|
||||
|
||||
let builder = Index::builder()
|
||||
.schema(Schema::schema().clone())
|
||||
.tokenizers(tokenizer_manager);
|
||||
|
||||
let index = if let Some(path) = self.path {
|
||||
let mmap_directory = MmapDirectory::open(path)?;
|
||||
let managed_directory = ManagedDirectory::wrap(Box::new(mmap_directory))?;
|
||||
let index = Index::builder()
|
||||
.schema(Schema::schema().clone())
|
||||
.tokenizers(tokenizer_manager)
|
||||
.open_or_create(managed_directory)?;
|
||||
|
||||
let reader = index
|
||||
.reader_builder()
|
||||
.reload_policy(ReloadPolicy::OnCommitWithDelay)
|
||||
.try_into()?;
|
||||
|
||||
let writer = index.writer(50_000_000)?;
|
||||
|
||||
Ok(SearchIndex {
|
||||
index,
|
||||
reader,
|
||||
writer,
|
||||
})
|
||||
builder.open_or_create(managed_directory)?
|
||||
} else {
|
||||
Err(SearchError::IndexPathNotSpecified)
|
||||
}
|
||||
builder.create_in_ram()?
|
||||
};
|
||||
|
||||
let reader = index
|
||||
.reader_builder()
|
||||
.reload_policy(ReloadPolicy::OnCommitWithDelay)
|
||||
.try_into()?;
|
||||
|
||||
let writer = index.writer(50_000_000)?;
|
||||
|
||||
Ok(SearchIndex {
|
||||
index,
|
||||
reader,
|
||||
writer,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user