mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-30 23:46:28 +00:00 
			
		
		
		
	add unit test for distinct search with no ranking
This commit is contained in:
		| @@ -8,7 +8,7 @@ use Criterion::*; | |||||||
| use crate::search::{self, EXTERNAL_DOCUMENTS_IDS}; | use crate::search::{self, EXTERNAL_DOCUMENTS_IDS}; | ||||||
|  |  | ||||||
| macro_rules! test_distinct { | macro_rules! test_distinct { | ||||||
|     ($func:ident, $distinct:ident, $exhaustive:ident, $limit:expr, $criteria:expr, $n_res:expr) => { |     ($func:ident, $distinct:ident, $exhaustive:ident, $limit:expr, $offset:expr, $criteria:expr, $n_res:expr) => { | ||||||
|         #[test] |         #[test] | ||||||
|         fn $func() { |         fn $func() { | ||||||
|             let criteria = $criteria; |             let criteria = $criteria; | ||||||
| @@ -27,6 +27,7 @@ macro_rules! test_distinct { | |||||||
|             let mut search = Search::new(&rtxn, &index); |             let mut search = Search::new(&rtxn, &index); | ||||||
|             search.query(search::TEST_QUERY); |             search.query(search::TEST_QUERY); | ||||||
|             search.limit($limit); |             search.limit($limit); | ||||||
|  |             search.offset($offset); | ||||||
|             search.exhaustive_number_hits($exhaustive); |             search.exhaustive_number_hits($exhaustive); | ||||||
|  |  | ||||||
|             search.terms_matching_strategy(TermsMatchingStrategy::default()); |             search.terms_matching_strategy(TermsMatchingStrategy::default()); | ||||||
| @@ -47,6 +48,7 @@ macro_rules! test_distinct { | |||||||
|                             Some(d.id) |                             Some(d.id) | ||||||
|                         } |                         } | ||||||
|                     }) |                     }) | ||||||
|  |                     .skip($offset) | ||||||
|                     .take($limit) |                     .take($limit) | ||||||
|                     .collect(); |                     .collect(); | ||||||
|  |  | ||||||
| @@ -61,6 +63,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     true, |     true, | ||||||
|     1, |     1, | ||||||
|  |     0, | ||||||
|     vec![Words, Typo, Proximity, Attribute, Exactness], |     vec![Words, Typo, Proximity, Attribute, Exactness], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -69,6 +72,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     true, |     true, | ||||||
|     1, |     1, | ||||||
|  |     0, | ||||||
|     vec![Words, Typo, Proximity, Attribute, Exactness], |     vec![Words, Typo, Proximity, Attribute, Exactness], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -77,6 +81,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     true, |     true, | ||||||
|     0, |     0, | ||||||
|  |     0, | ||||||
|     vec![Desc(S("attribute_rank")), Desc(S("exactness_rank")), Exactness, Typo], |     vec![Desc(S("attribute_rank")), Desc(S("exactness_rank")), Exactness, Typo], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -86,6 +91,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Typo, Proximity, Attribute, Exactness], |     vec![Words, Typo, Proximity, Attribute, Exactness], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -94,6 +100,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Typo, Proximity, Attribute, Exactness], |     vec![Words, Typo, Proximity, Attribute, Exactness], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -102,6 +109,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words], |     vec![Words], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -110,6 +118,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words], |     vec![Words], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -118,6 +127,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Typo], |     vec![Words, Typo], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -126,6 +136,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Typo], |     vec![Words, Typo], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -134,6 +145,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Proximity], |     vec![Words, Proximity], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -142,6 +154,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Proximity], |     vec![Words, Proximity], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -150,6 +163,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Attribute], |     vec![Words, Attribute], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -158,6 +172,7 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Attribute], |     vec![Words, Attribute], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
| @@ -166,6 +181,7 @@ test_distinct!( | |||||||
|     tag, |     tag, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Exactness], |     vec![Words, Exactness], | ||||||
|     3 |     3 | ||||||
| ); | ); | ||||||
| @@ -174,6 +190,47 @@ test_distinct!( | |||||||
|     asc_desc_rank, |     asc_desc_rank, | ||||||
|     false, |     false, | ||||||
|     EXTERNAL_DOCUMENTS_IDS.len(), |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     0, | ||||||
|     vec![Words, Exactness], |     vec![Words, Exactness], | ||||||
|     7 |     7 | ||||||
| ); | ); | ||||||
|  | test_distinct!( | ||||||
|  |     // testing: https://github.com/meilisearch/meilisearch/issues/4078 | ||||||
|  |     distinct_string_limit_and_offset, | ||||||
|  |     tag, | ||||||
|  |     false, | ||||||
|  |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     1, | ||||||
|  |     vec![], | ||||||
|  |     2 | ||||||
|  | ); | ||||||
|  | test_distinct!( | ||||||
|  |     // testing: https://github.com/meilisearch/meilisearch/issues/4078 | ||||||
|  |     exhaustive_distinct_string_limit_and_offset, | ||||||
|  |     tag, | ||||||
|  |     true, | ||||||
|  |     1, | ||||||
|  |     2, | ||||||
|  |     vec![], | ||||||
|  |     1 | ||||||
|  | ); | ||||||
|  | test_distinct!( | ||||||
|  |     // testing: https://github.com/meilisearch/meilisearch/issues/4078 | ||||||
|  |     distinct_number_limit_and_offset, | ||||||
|  |     asc_desc_rank, | ||||||
|  |     false, | ||||||
|  |     EXTERNAL_DOCUMENTS_IDS.len(), | ||||||
|  |     2, | ||||||
|  |     vec![], | ||||||
|  |     5 | ||||||
|  | ); | ||||||
|  | test_distinct!( | ||||||
|  |     // testing: https://github.com/meilisearch/meilisearch/issues/4078 | ||||||
|  |     exhaustive_distinct_number_limit_and_offset, | ||||||
|  |     asc_desc_rank, | ||||||
|  |     true, | ||||||
|  |     2, | ||||||
|  |     4, | ||||||
|  |     vec![], | ||||||
|  |     3 | ||||||
|  | ); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user