mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-30 23:46:28 +00:00 
			
		
		
		
	fix the facets conditions
This commit is contained in:
		| @@ -138,6 +138,7 @@ fn bench_songs(c: &mut criterion::Criterion) { | ||||
|             criterion: Some(&["desc(released-timestamp)"]), | ||||
|             ..BASE_CONF | ||||
|         }, | ||||
|  | ||||
|         /* then we bench the asc and desc criterion on top of the default criterion */ | ||||
|         utils::Conf { | ||||
|             group_name: "asc + default", | ||||
| @@ -149,6 +150,24 @@ fn bench_songs(c: &mut criterion::Criterion) { | ||||
|             criterion: Some(&desc_default[..]), | ||||
|             ..BASE_CONF | ||||
|         }, | ||||
|  | ||||
|         /* we bench the filters with the default request */ | ||||
|         utils::Conf { | ||||
|             group_name: "basic filter: <=", | ||||
|             facet_condition: Some("released-timestamp <= 946728000"), // year 2000 | ||||
|             ..BASE_CONF | ||||
|         }, | ||||
|         utils::Conf { | ||||
|             group_name: "basic filter: TO", | ||||
|             facet_condition: Some("released-timestamp 946728000 TO 1262347200"), // year 2000 to 2010 | ||||
|             ..BASE_CONF | ||||
|         }, | ||||
|         utils::Conf { | ||||
|             group_name: "big filter", | ||||
|             facet_condition: Some("released-timestamp != 1262347200 AND (NOT (released-timestamp = 946728000)) AND (duration-float = 1 OR (duration-float 1.1 TO 1.5 AND released-timestamp > 315576000))"), | ||||
|             ..BASE_CONF | ||||
|         }, | ||||
|  | ||||
|         /* the we bench some global / normal search with all the default criterion in the default | ||||
|          * order */ | ||||
|         utils::Conf { | ||||
| @@ -174,7 +193,10 @@ fn bench_songs(c: &mut criterion::Criterion) { | ||||
|             group_name: "prefix search", | ||||
|             queries: &[ | ||||
|                 "s", // 500k+ results | ||||
|                 "a", "b", "i", "x", // only 7k results | ||||
|                 "a", // | ||||
|                 "b", // | ||||
|                 "i", // | ||||
|                 "x", // only 7k results | ||||
|             ], | ||||
|             ..BASE_CONF | ||||
|         }, | ||||
|   | ||||
| @@ -1,7 +1,4 @@ | ||||
| use std::{ | ||||
|     fs::{create_dir_all, remove_dir_all, File}, | ||||
|     time::Duration, | ||||
| }; | ||||
| use std::fs::{create_dir_all, remove_dir_all, File}; | ||||
|  | ||||
| use criterion::BenchmarkId; | ||||
| use heed::EnvOpenOptions; | ||||
| @@ -24,7 +21,7 @@ pub struct Conf<'a> { | ||||
|     pub criterion: Option<&'a [&'a str]>, | ||||
|     /// the last chance to configure your database as you want | ||||
|     pub configure: fn(&mut Settings), | ||||
|     pub facet_condition: Option<FacetCondition>, | ||||
|     pub facet_condition: Option<&'a str>, | ||||
|     /// enable or disable the optional words on the query | ||||
|     pub optional_words: bool, | ||||
| } | ||||
| @@ -102,7 +99,8 @@ pub fn run_benches(c: &mut criterion::Criterion, confs: &[Conf]) { | ||||
|                     let rtxn = index.read_txn().unwrap(); | ||||
|                     let mut search = index.search(&rtxn); | ||||
|                     search.query(query).optional_words(conf.optional_words); | ||||
|                     if let Some(facet_condition) = conf.facet_condition.clone() { | ||||
|                     if let Some(facet_condition) = conf.facet_condition { | ||||
|                         let facet_condition = FacetCondition::from_str(&rtxn, &index, facet_condition).unwrap(); | ||||
|                         search.facet_condition(facet_condition); | ||||
|                     } | ||||
|                     let _ids = search.execute().unwrap(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user