Hard limit the number of results returned by a search

This commit is contained in:
Kerollmops 2022-03-29 11:27:53 -07:00
parent 381e98053f
commit 405af09fc8
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4

View File

@ -34,6 +34,10 @@ pub const fn default_crop_length() -> usize {
DEFAULT_CROP_LENGTH DEFAULT_CROP_LENGTH
} }
/// The maximimum number of results that the engine
/// will be able to return in one search call.
pub const HARD_RESULT_LIMIT: usize = 1000;
#[derive(Deserialize, Debug, Clone, PartialEq)] #[derive(Deserialize, Debug, Clone, PartialEq)]
#[serde(rename_all = "camelCase", deny_unknown_fields)] #[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct SearchQuery { pub struct SearchQuery {
@ -124,6 +128,8 @@ impl Index {
.. ..
} = search.execute()?; } = search.execute()?;
let documents_ids: Vec<_> = documents_ids.into_iter().take(HARD_RESULT_LIMIT).collect();
let fields_ids_map = self.fields_ids_map(&rtxn).unwrap(); let fields_ids_map = self.fields_ids_map(&rtxn).unwrap();
let displayed_ids = self let displayed_ids = self