1use hrxdb::{Corpus, Device};
3
4fn main() -> hrxdb::Result<()> {
5 let device = Device::open(0)?;
6 let corpus = Corpus::build(
7 &device,
8 3,
9 [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.8, 0.2, 0.0]],
10 )?;
11 let external_ids = ["document-a", "document-b", "document-c"];
12 let mut index = corpus.searcher()?;
13 drop(device);
14 let snapshot = corpus.clone();
16 let worker = std::thread::spawn(move || -> hrxdb::Result<()> {
17 for neighbor in index.search(&[1.0, 0.0, 0.0], 2)? {
18 println!(
19 "{}: {:.6}",
20 external_ids[neighbor.id as usize], neighbor.similarity
21 );
22 }
23 Ok(())
24 });
25 assert_eq!(snapshot.len(), 3);
26 worker.join().expect("query worker panicked")
27}