mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-22 21:04:27 +01:00
Merge #4204
4204: Throw error when the vector search is sent with the wrong size r=Kerollmops a=dureuill # Pull Request ## Related issue Fixes #4201 Co-authored-by: Louis Dureuil <louis@meilisearch.com>
This commit is contained in:
commit
ee1701157f
@ -434,7 +434,18 @@ pub fn execute_search(
|
|||||||
let mut search = Search::default();
|
let mut search = Search::default();
|
||||||
let docids = match ctx.index.vector_hnsw(ctx.txn)? {
|
let docids = match ctx.index.vector_hnsw(ctx.txn)? {
|
||||||
Some(hnsw) => {
|
Some(hnsw) => {
|
||||||
|
if let Some(expected_size) = hnsw.iter().map(|(_, point)| point.len()).next() {
|
||||||
|
if vector.len() != expected_size {
|
||||||
|
return Err(UserError::InvalidVectorDimensions {
|
||||||
|
expected: expected_size,
|
||||||
|
found: vector.len(),
|
||||||
|
}
|
||||||
|
.into());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let vector = NDotProductPoint::new(vector.clone());
|
let vector = NDotProductPoint::new(vector.clone());
|
||||||
|
|
||||||
let neighbors = hnsw.search(&vector, &mut search);
|
let neighbors = hnsw.search(&vector, &mut search);
|
||||||
|
|
||||||
let mut docids = Vec::new();
|
let mut docids = Vec::new();
|
||||||
|
Loading…
Reference in New Issue
Block a user