mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-30 00:34:26 +01:00
Add explicit criterion impl strategy to proximity search tests
This commit is contained in:
parent
f097aafa1c
commit
8d36570958
@ -599,7 +599,7 @@ mod tests {
|
|||||||
|
|
||||||
use crate::documents::{DocumentsBatchBuilder, DocumentsBatchReader};
|
use crate::documents::{DocumentsBatchBuilder, DocumentsBatchReader};
|
||||||
use crate::index::tests::TempIndex;
|
use crate::index::tests::TempIndex;
|
||||||
use crate::SearchResult;
|
use crate::{CriterionImplementationStrategy, SearchResult};
|
||||||
|
|
||||||
fn documents_with_enough_different_words_for_prefixes(prefixes: &[&str]) -> Vec<crate::Object> {
|
fn documents_with_enough_different_words_for_prefixes(prefixes: &[&str]) -> Vec<crate::Object> {
|
||||||
let mut documents = Vec::new();
|
let mut documents = Vec::new();
|
||||||
@ -663,29 +663,49 @@ mod tests {
|
|||||||
|
|
||||||
let rtxn = index.read_txn().unwrap();
|
let rtxn = index.read_txn().unwrap();
|
||||||
|
|
||||||
let SearchResult { matching_words: _, candidates: _, documents_ids } =
|
let SearchResult { matching_words: _, candidates: _, documents_ids } = index
|
||||||
index.search(&rtxn).query("zero c").execute().unwrap();
|
.search(&rtxn)
|
||||||
|
.query("zero c")
|
||||||
|
.criterion_implementation_strategy(CriterionImplementationStrategy::OnlySetBased)
|
||||||
|
.execute()
|
||||||
|
.unwrap();
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 3, 4, 1, 5, 0]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 3, 4, 1, 5, 0]");
|
||||||
|
|
||||||
let SearchResult { matching_words: _, candidates: _, documents_ids } =
|
let SearchResult { matching_words: _, candidates: _, documents_ids } = index
|
||||||
index.search(&rtxn).query("zero co").execute().unwrap();
|
.search(&rtxn)
|
||||||
|
.query("zero co")
|
||||||
|
.criterion_implementation_strategy(CriterionImplementationStrategy::OnlySetBased)
|
||||||
|
.execute()
|
||||||
|
.unwrap();
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 3, 4, 1, 5, 0]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 3, 4, 1, 5, 0]");
|
||||||
|
|
||||||
let SearchResult { matching_words: _, candidates: _, documents_ids } =
|
let SearchResult { matching_words: _, candidates: _, documents_ids } = index
|
||||||
index.search(&rtxn).query("zero con").execute().unwrap();
|
.search(&rtxn)
|
||||||
|
.query("zero con")
|
||||||
|
.criterion_implementation_strategy(CriterionImplementationStrategy::OnlySetBased)
|
||||||
|
.execute()
|
||||||
|
.unwrap();
|
||||||
// Here searh results are degraded because `con` is in the prefix cache but it is too
|
// Here searh results are degraded because `con` is in the prefix cache but it is too
|
||||||
// long to be stored in the prefix proximity databases, and we don't want to iterate over
|
// long to be stored in the prefix proximity databases, and we don't want to iterate over
|
||||||
// all of its word derivations
|
// all of its word derivations
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[0, 1, 2, 3, 4, 5]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[0, 1, 2, 3, 4, 5]");
|
||||||
|
|
||||||
let SearchResult { matching_words: _, candidates: _, documents_ids } =
|
let SearchResult { matching_words: _, candidates: _, documents_ids } = index
|
||||||
index.search(&rtxn).query("zero conf").execute().unwrap();
|
.search(&rtxn)
|
||||||
|
.criterion_implementation_strategy(CriterionImplementationStrategy::OnlySetBased)
|
||||||
|
.query("zero conf")
|
||||||
|
.execute()
|
||||||
|
.unwrap();
|
||||||
// Here search results are degraded as well, but we can still rank correctly documents
|
// Here search results are degraded as well, but we can still rank correctly documents
|
||||||
// that contain `conf` exactly, and not as a prefix.
|
// that contain `conf` exactly, and not as a prefix.
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[4, 5, 0, 1, 2, 3]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[4, 5, 0, 1, 2, 3]");
|
||||||
|
|
||||||
let SearchResult { matching_words: _, candidates: _, documents_ids } =
|
let SearchResult { matching_words: _, candidates: _, documents_ids } = index
|
||||||
index.search(&rtxn).query("zero config").execute().unwrap();
|
.search(&rtxn)
|
||||||
|
.criterion_implementation_strategy(CriterionImplementationStrategy::OnlySetBased)
|
||||||
|
.query("zero config")
|
||||||
|
.execute()
|
||||||
|
.unwrap();
|
||||||
// `config` is not a common prefix, so the normal methods are used
|
// `config` is not a common prefix, so the normal methods are used
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 3, 1, 0, 4, 5]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 3, 1, 0, 4, 5]");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user