mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-27 04:25:06 +08:00
Fix PR comments
This commit is contained in:
parent
f496cd320d
commit
6cb1102bdb
@ -21,9 +21,9 @@ macro_rules! test_distinct {
|
|||||||
builder.execute(|_, _| ()).unwrap();
|
builder.execute(|_, _| ()).unwrap();
|
||||||
wtxn.commit().unwrap();
|
wtxn.commit().unwrap();
|
||||||
|
|
||||||
let mut rtxn = index.read_txn().unwrap();
|
let rtxn = index.read_txn().unwrap();
|
||||||
|
|
||||||
let mut search = Search::new(&mut rtxn, &index);
|
let mut search = Search::new(&rtxn, &index);
|
||||||
search.query(search::TEST_QUERY);
|
search.query(search::TEST_QUERY);
|
||||||
search.limit(EXTERNAL_DOCUMENTS_IDS.len());
|
search.limit(EXTERNAL_DOCUMENTS_IDS.len());
|
||||||
search.authorize_typos(true);
|
search.authorize_typos(true);
|
||||||
@ -50,27 +50,23 @@ macro_rules! test_distinct {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
test_distinct!(
|
||||||
test_distinct!(distinct_string_default_criteria, tag, vec![Words, Typo, Proximity, Attribute, Exactness]);
|
distinct_string_default_criteria,
|
||||||
#[rustfmt::skip]
|
tag,
|
||||||
test_distinct!(distinct_number_default_criteria, asc_desc_rank, vec![Words, Typo, Proximity, Attribute, Exactness]);
|
vec![Words, Typo, Proximity, Attribute, Exactness]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_distinct!(distinct_string_criterion_words, tag, vec![Words]);
|
test_distinct!(
|
||||||
#[rustfmt::skip]
|
distinct_number_default_criteria,
|
||||||
test_distinct!(distinct_number_criterion_words, asc_desc_rank, vec![Words]);
|
asc_desc_rank,
|
||||||
#[rustfmt::skip]
|
vec![Words, Typo, Proximity, Attribute, Exactness]
|
||||||
test_distinct!(distinct_string_criterion_words_typo, tag, vec![Words, Typo]);
|
);
|
||||||
#[rustfmt::skip]
|
test_distinct!(distinct_string_criterion_words, tag, vec![Words]);
|
||||||
test_distinct!(distinct_number_criterion_words_typo, asc_desc_rank, vec![Words, Typo]);
|
test_distinct!(distinct_number_criterion_words, asc_desc_rank, vec![Words]);
|
||||||
#[rustfmt::skip]
|
test_distinct!(distinct_string_criterion_words_typo, tag, vec![Words, Typo]);
|
||||||
test_distinct!(distinct_string_criterion_words_proximity, tag, vec![Words, Proximity]);
|
test_distinct!(distinct_number_criterion_words_typo, asc_desc_rank, vec![Words, Typo]);
|
||||||
#[rustfmt::skip]
|
test_distinct!(distinct_string_criterion_words_proximity, tag, vec![Words, Proximity]);
|
||||||
test_distinct!(distinct_number_criterion_words_proximity, asc_desc_rank, vec![Words, Proximity]);
|
test_distinct!(distinct_number_criterion_words_proximity, asc_desc_rank, vec![Words, Proximity]);
|
||||||
#[rustfmt::skip]
|
test_distinct!(distinct_string_criterion_words_attribute, tag, vec![Words, Attribute]);
|
||||||
test_distinct!(distinct_string_criterion_words_attribute, tag, vec![Words, Attribute]);
|
|
||||||
#[rustfmt::skip]
|
|
||||||
test_distinct!(distinct_number_criterion_words_attribute, asc_desc_rank, vec![Words, Attribute]);
|
test_distinct!(distinct_number_criterion_words_attribute, asc_desc_rank, vec![Words, Attribute]);
|
||||||
#[rustfmt::skip]
|
test_distinct!(distinct_string_criterion_words_exactness, tag, vec![Words, Exactness]);
|
||||||
test_distinct!(distinct_string_criterion_words_exactness, tag, vec![Words, Exactness]);
|
|
||||||
#[rustfmt::skip]
|
|
||||||
test_distinct!(distinct_number_criterion_words_exactness, asc_desc_rank, vec![Words, Exactness]);
|
test_distinct!(distinct_number_criterion_words_exactness, asc_desc_rank, vec![Words, Exactness]);
|
||||||
|
@ -10,7 +10,7 @@ macro_rules! test_filter {
|
|||||||
fn $func() {
|
fn $func() {
|
||||||
let criteria = vec![Words, Typo, Proximity, Attribute, Exactness];
|
let criteria = vec![Words, Typo, Proximity, Attribute, Exactness];
|
||||||
let index = search::setup_search_index_with_criteria(&criteria);
|
let index = search::setup_search_index_with_criteria(&criteria);
|
||||||
let mut rtxn = index.read_txn().unwrap();
|
let rtxn = index.read_txn().unwrap();
|
||||||
|
|
||||||
let filter_conditions =
|
let filter_conditions =
|
||||||
FilterCondition::from_array::<Vec<Either<Vec<&str>, &str>>, _, _, _>(
|
FilterCondition::from_array::<Vec<Either<Vec<&str>, &str>>, _, _, _>(
|
||||||
@ -19,7 +19,7 @@ macro_rules! test_filter {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let mut search = Search::new(&mut rtxn, &index);
|
let mut search = Search::new(&rtxn, &index);
|
||||||
search.query(search::TEST_QUERY);
|
search.query(search::TEST_QUERY);
|
||||||
search.limit(EXTERNAL_DOCUMENTS_IDS.len());
|
search.limit(EXTERNAL_DOCUMENTS_IDS.len());
|
||||||
search.authorize_typos(true);
|
search.authorize_typos(true);
|
||||||
@ -40,45 +40,39 @@ macro_rules! test_filter {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
test_filter!(eq_simple_string_filter, vec![Right("tag=red")]);
|
||||||
test_filter!(eq_simple_string_filter, vec![Right("tag=red")]);
|
test_filter!(eq_simple_number_filter, vec![Right("asc_desc_rank=1")]);
|
||||||
#[rustfmt::skip]
|
|
||||||
test_filter!(eq_simple_number_filter, vec![Right("asc_desc_rank=1")]);
|
|
||||||
#[rustfmt::skip]
|
|
||||||
test_filter!(eq_string_and_filter_return_empty, vec![Right("tag=red"), Right("tag=green")]);
|
test_filter!(eq_string_and_filter_return_empty, vec![Right("tag=red"), Right("tag=green")]);
|
||||||
#[rustfmt::skip]
|
test_filter!(eq_mix_and_filter, vec![Right("tag=red"), Right("asc_desc_rank=1")]);
|
||||||
test_filter!(eq_mix_and_filter, vec![Right("tag=red"), Right("asc_desc_rank=1")]);
|
test_filter!(eq_string_or_filter, vec![Left(vec!["tag=red", "tag=green"])]);
|
||||||
#[rustfmt::skip]
|
test_filter!(eq_mix_or_filter, vec![Left(vec!["tag=red", "asc_desc_rank=1"])]);
|
||||||
test_filter!(eq_string_or_filter, vec![Left(vec!["tag=red", "tag=green"])]);
|
test_filter!(eq_number_or_filter, vec![Left(vec!["asc_desc_rank=3", "asc_desc_rank=1"])]);
|
||||||
#[rustfmt::skip]
|
test_filter!(eq_complex_filter, vec![Left(vec!["tag=red", "tag=green"]), Right("asc_desc_rank=3")]);
|
||||||
test_filter!(eq_mix_or_filter, vec![Left(vec!["tag=red", "asc_desc_rank=1"])]);
|
test_filter!(
|
||||||
#[rustfmt::skip]
|
eq_complex_filter_2,
|
||||||
test_filter!(eq_number_or_filter, vec![Left(vec!["asc_desc_rank=3", "asc_desc_rank=1"])]);
|
vec![Left(vec!["tag=red", "tag=green"]), Left(vec!["asc_desc_rank=3", "asc_desc_rank=1"])]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_filter!(eq_complex_filter, vec![Left(vec!["tag=red", "tag=green"]), Right("asc_desc_rank=3")]);
|
test_filter!(greater_simple_number_filter, vec![Right("asc_desc_rank>1")]);
|
||||||
#[rustfmt::skip]
|
test_filter!(greater_mix_and_filter, vec![Right("tag=red"), Right("asc_desc_rank>1")]);
|
||||||
test_filter!(eq_complex_filter_2, vec![Left(vec!["tag=red", "tag=green"]), Left(vec!["asc_desc_rank=3", "asc_desc_rank=1"])]);
|
test_filter!(greater_mix_or_filter, vec![Left(vec!["tag=red", "asc_desc_rank>1"])]);
|
||||||
#[rustfmt::skip]
|
test_filter!(greater_number_or_filter, vec![Left(vec!["asc_desc_rank>3", "asc_desc_rank>1"])]);
|
||||||
test_filter!(greater_simple_number_filter, vec![Right("asc_desc_rank>1")]);
|
test_filter!(
|
||||||
#[rustfmt::skip]
|
greater_complex_filter,
|
||||||
test_filter!(greater_mix_and_filter, vec![Right("tag=red"), Right("asc_desc_rank>1")]);
|
vec![Left(vec!["tag=red", "tag=green"]), Right("asc_desc_rank>3")]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_filter!(greater_mix_or_filter, vec![Left(vec!["tag=red", "asc_desc_rank>1"])]);
|
test_filter!(
|
||||||
#[rustfmt::skip]
|
greater_complex_filter_2,
|
||||||
test_filter!(greater_number_or_filter, vec![Left(vec!["asc_desc_rank>3", "asc_desc_rank>1"])]);
|
vec![Left(vec!["tag=red", "tag=green"]), Left(vec!["asc_desc_rank>3", "asc_desc_rank>1"])]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_filter!(greater_complex_filter, vec![Left(vec!["tag=red", "tag=green"]), Right("asc_desc_rank>3")]);
|
test_filter!(lower_simple_number_filter, vec![Right("asc_desc_rank<1")]);
|
||||||
#[rustfmt::skip]
|
test_filter!(lower_mix_and_filter, vec![Right("tag=red"), Right("asc_desc_rank<1")]);
|
||||||
test_filter!(greater_complex_filter_2, vec![Left(vec!["tag=red", "tag=green"]), Left(vec!["asc_desc_rank>3", "asc_desc_rank>1"])]);
|
test_filter!(lower_mix_or_filter, vec![Left(vec!["tag=red", "asc_desc_rank<1"])]);
|
||||||
#[rustfmt::skip]
|
test_filter!(lower_number_or_filter, vec![Left(vec!["asc_desc_rank<3", "asc_desc_rank<1"])]);
|
||||||
test_filter!(lower_simple_number_filter, vec![Right("asc_desc_rank<1")]);
|
test_filter!(
|
||||||
#[rustfmt::skip]
|
lower_complex_filter,
|
||||||
test_filter!(lower_mix_and_filter, vec![Right("tag=red"), Right("asc_desc_rank<1")]);
|
vec![Left(vec!["tag=red", "tag=green"]), Right("asc_desc_rank<3")]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_filter!(lower_mix_or_filter, vec![Left(vec!["tag=red", "asc_desc_rank<1"])]);
|
test_filter!(
|
||||||
#[rustfmt::skip]
|
lower_complex_filter_2,
|
||||||
test_filter!(lower_number_or_filter, vec![Left(vec!["asc_desc_rank<3", "asc_desc_rank<1"])]);
|
vec![Left(vec!["tag=red", "tag=green"]), Left(vec!["asc_desc_rank<3", "asc_desc_rank<1"])]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_filter!(lower_complex_filter, vec![Left(vec!["tag=red", "tag=green"]), Right("asc_desc_rank<3")]);
|
|
||||||
#[rustfmt::skip]
|
|
||||||
test_filter!(lower_complex_filter_2, vec![Left(vec!["tag=red", "tag=green"]), Left(vec!["asc_desc_rank<3", "asc_desc_rank<1"])]);
|
|
||||||
|
@ -128,7 +128,6 @@ pub fn expected_order(
|
|||||||
fn execute_filter(filter: &str, document: &TestDocument) -> Option<String> {
|
fn execute_filter(filter: &str, document: &TestDocument) -> Option<String> {
|
||||||
let mut id = None;
|
let mut id = None;
|
||||||
if let Some((field, filter)) = filter.split_once("=") {
|
if let Some((field, filter)) = filter.split_once("=") {
|
||||||
println!("eq on field {} with filter {}", field, filter);
|
|
||||||
if field == "tag" && document.tag == filter {
|
if field == "tag" && document.tag == filter {
|
||||||
id = Some(document.id.clone())
|
id = Some(document.id.clone())
|
||||||
} else if field == "asc_desc_rank"
|
} else if field == "asc_desc_rank"
|
||||||
@ -137,12 +136,10 @@ fn execute_filter(filter: &str, document: &TestDocument) -> Option<String> {
|
|||||||
id = Some(document.id.clone())
|
id = Some(document.id.clone())
|
||||||
}
|
}
|
||||||
} else if let Some(("asc_desc_rank", filter)) = filter.split_once("<") {
|
} else if let Some(("asc_desc_rank", filter)) = filter.split_once("<") {
|
||||||
println!("lower on field asc_desc_rank with filter {}", filter);
|
|
||||||
if document.asc_desc_rank < filter.parse().unwrap() {
|
if document.asc_desc_rank < filter.parse().unwrap() {
|
||||||
id = Some(document.id.clone())
|
id = Some(document.id.clone())
|
||||||
}
|
}
|
||||||
} else if let Some(("asc_desc_rank", filter)) = filter.split_once(">") {
|
} else if let Some(("asc_desc_rank", filter)) = filter.split_once(">") {
|
||||||
println!("higher on field asc_desc_rank with filter {}", filter);
|
|
||||||
if document.asc_desc_rank > filter.parse().unwrap() {
|
if document.asc_desc_rank > filter.parse().unwrap() {
|
||||||
id = Some(document.id.clone())
|
id = Some(document.id.clone())
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,9 @@ macro_rules! test_criterion {
|
|||||||
fn $func() {
|
fn $func() {
|
||||||
let criteria = $criteria;
|
let criteria = $criteria;
|
||||||
let index = search::setup_search_index_with_criteria(&criteria);
|
let index = search::setup_search_index_with_criteria(&criteria);
|
||||||
let mut rtxn = index.read_txn().unwrap();
|
let rtxn = index.read_txn().unwrap();
|
||||||
|
|
||||||
let mut search = Search::new(&mut rtxn, &index);
|
let mut search = Search::new(&rtxn, &index);
|
||||||
search.query(search::TEST_QUERY);
|
search.query(search::TEST_QUERY);
|
||||||
search.limit(EXTERNAL_DOCUMENTS_IDS.len());
|
search.limit(EXTERNAL_DOCUMENTS_IDS.len());
|
||||||
search.authorize_typos($authorize_typos);
|
search.authorize_typos($authorize_typos);
|
||||||
@ -37,42 +37,69 @@ macro_rules! test_criterion {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
test_criterion!(none_allow_typo, ALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![]);
|
||||||
test_criterion!(none_allow_typo, ALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![]);
|
test_criterion!(none_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![]);
|
||||||
#[rustfmt::skip]
|
test_criterion!(words_allow_typo, ALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Words]);
|
||||||
test_criterion!(none_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![]);
|
test_criterion!(attribute_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Attribute]);
|
||||||
#[rustfmt::skip]
|
test_criterion!(attribute_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Attribute]);
|
||||||
test_criterion!(words_allow_typo, ALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Words]);
|
test_criterion!(exactness_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Exactness]);
|
||||||
#[rustfmt::skip]
|
test_criterion!(exactness_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Exactness]);
|
||||||
test_criterion!(attribute_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Attribute]);
|
test_criterion!(proximity_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Proximity]);
|
||||||
#[rustfmt::skip]
|
test_criterion!(proximity_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Proximity]);
|
||||||
test_criterion!(attribute_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Attribute]);
|
test_criterion!(
|
||||||
#[rustfmt::skip]
|
asc_allow_typo,
|
||||||
test_criterion!(exactness_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Exactness]);
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
#[rustfmt::skip]
|
ALLOW_TYPOS,
|
||||||
test_criterion!(exactness_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Exactness]);
|
vec![Asc(S("asc_desc_rank"))]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_criterion!(proximity_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Proximity]);
|
test_criterion!(
|
||||||
#[rustfmt::skip]
|
asc_disallow_typo,
|
||||||
test_criterion!(proximity_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Proximity]);
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
#[rustfmt::skip]
|
DISALLOW_TYPOS,
|
||||||
test_criterion!(asc_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Asc(S("asc_desc_rank"))]);
|
vec![Asc(S("asc_desc_rank"))]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_criterion!(asc_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Asc(S("asc_desc_rank"))]);
|
test_criterion!(
|
||||||
#[rustfmt::skip]
|
desc_allow_typo,
|
||||||
test_criterion!(desc_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Desc(S("asc_desc_rank"))]);
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
#[rustfmt::skip]
|
ALLOW_TYPOS,
|
||||||
test_criterion!(desc_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Desc(S("asc_desc_rank"))]);
|
vec![Desc(S("asc_desc_rank"))]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_criterion!(asc_unexisting_field_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Asc(S("unexisting_field"))]);
|
test_criterion!(
|
||||||
#[rustfmt::skip]
|
desc_disallow_typo,
|
||||||
test_criterion!(asc_unexisting_field_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Asc(S("unexisting_field"))]);
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
#[rustfmt::skip]
|
DISALLOW_TYPOS,
|
||||||
test_criterion!(desc_unexisting_field_allow_typo, DISALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Desc(S("unexisting_field"))]);
|
vec![Desc(S("asc_desc_rank"))]
|
||||||
#[rustfmt::skip]
|
);
|
||||||
test_criterion!(desc_unexisting_field_disallow_typo, DISALLOW_OPTIONAL_WORDS, DISALLOW_TYPOS, vec![Desc(S("unexisting_field"))]);
|
test_criterion!(
|
||||||
#[rustfmt::skip]
|
asc_unexisting_field_allow_typo,
|
||||||
test_criterion!(default_criteria_order, ALLOW_OPTIONAL_WORDS, ALLOW_TYPOS, vec![Words, Typo, Proximity, Attribute, Exactness]);
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
|
ALLOW_TYPOS,
|
||||||
|
vec![Asc(S("unexisting_field"))]
|
||||||
|
);
|
||||||
|
test_criterion!(
|
||||||
|
asc_unexisting_field_disallow_typo,
|
||||||
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
|
DISALLOW_TYPOS,
|
||||||
|
vec![Asc(S("unexisting_field"))]
|
||||||
|
);
|
||||||
|
test_criterion!(
|
||||||
|
desc_unexisting_field_allow_typo,
|
||||||
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
|
ALLOW_TYPOS,
|
||||||
|
vec![Desc(S("unexisting_field"))]
|
||||||
|
);
|
||||||
|
test_criterion!(
|
||||||
|
desc_unexisting_field_disallow_typo,
|
||||||
|
DISALLOW_OPTIONAL_WORDS,
|
||||||
|
DISALLOW_TYPOS,
|
||||||
|
vec![Desc(S("unexisting_field"))]
|
||||||
|
);
|
||||||
|
test_criterion!(
|
||||||
|
default_criteria_order,
|
||||||
|
ALLOW_OPTIONAL_WORDS,
|
||||||
|
ALLOW_TYPOS,
|
||||||
|
vec![Words, Typo, Proximity, Attribute, Exactness]
|
||||||
|
);
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn criteria_mixup() {
|
fn criteria_mixup() {
|
||||||
|
Loading…
Reference in New Issue
Block a user