(&self, vid: VectorId, vec: Vec<f32>)
| 92 | /// insert to storage and persist to disk |
| 93 | #[inline] |
| 94 | pub async fn insert(&self, vid: VectorId, vec: Vec<f32>) -> Result<(), SessionResult> { |
| 95 | let v = Vector(vec); |
| 96 | if !self.off_disk || !self.off_reporter { |
| 97 | let query = RQuery::Insert(vid.clone(), v.clone()); |
| 98 | |
| 99 | if !self.off_disk { |
| 100 | if let Err(e) = self.wal_session.log(bincode::serialize(&query).unwrap()).await { |
| 101 | return Err(e); |
| 102 | } |
| 103 | } |
| 104 | |
| 105 | if !self.off_reporter { |
| 106 | let _ = self.reporter_session.dispatch(Event::Query(query)).await; |
| 107 | } |
| 108 | |
| 109 | } |
| 110 | |
| 111 | |
| 112 | // Insert to memory |
| 113 | self.vcache.insert(vid, v); |
| 114 | |
| 115 | |
| 116 | Ok(()) |
| 117 | |
| 118 | |
| 119 | } |
| 120 | |
| 121 | |
| 122 | /// insert to storage and persist to disk |
no test coverage detected