index_and_term_delete/
index_and_term_delete.rs1use std::{collections::HashMap, fs, path::Path};
2
3use book::Book;
4use text_search::{tantivy::Term, Indexable, Indexer};
5
6mod book;
7
8fn main() {
9 let path = "/home/salman/text-search-test";
10 let _ = fs::remove_dir_all(&path);
11 let _ = fs::create_dir(&path);
12 let mut indexer = Indexer::<Book>::new(Path::new(path));
13 let books = Book::get_sample_books();
14 for book in &books {
15 indexer.index(book.clone());
16 }
17 indexer.commit();
18
19 println!("Before deleting");
20 let regex_search_result = indexer.hybrid_search(HashMap::new(), "name", "Rust", 10);
21 for book in regex_search_result {
22 println!("{:?}", book);
23 }
24
25 let field = Book::get_struct_info()
26 .generate_schema()
27 .get_field("author")
28 .unwrap();
29
30 let term = Term::from_field_text(field, "Steve Klabnik and Carol Nichols");
31 indexer.delete_using_term(term);
32 indexer.commit();
33
34 println!("After deleting");
35 let regex_search_result = indexer.hybrid_search(HashMap::new(), "name", "Rust", 10);
36 for book in regex_search_result {
37 println!("{:?}", book);
38 }
39}