mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-03-06 22:02:34 +08:00
Add test
This commit is contained in:
parent
c7333a06c5
commit
c6d9addece
@ -436,3 +436,336 @@ async fn deactivate_facet_search_add_documents_and_reset_facet_search() {
|
|||||||
assert_eq!(code, 200, "{}", response);
|
assert_eq!(code, 200, "{}", response);
|
||||||
assert_eq!(dbg!(response)["facetHits"].as_array().unwrap().len(), 2);
|
assert_eq!(dbg!(response)["facetHits"].as_array().unwrap().len(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn distinct_facet_search_on_movies() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.index("test");
|
||||||
|
|
||||||
|
let documents = json!([
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"title": "Carol",
|
||||||
|
"genres": ["Romance", "Drama", "Blob"],
|
||||||
|
"color": "crimson"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"title": "Wonder Woman",
|
||||||
|
"genres": ["Action", "Adventure", "Blob"],
|
||||||
|
"color": "emerald"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"title": "Life of Pi",
|
||||||
|
"genres": ["Adventure", "Drama", "Blob"],
|
||||||
|
"color": "azure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"title": "Mad Max: Fury Road",
|
||||||
|
"genres": ["Adventure", "Science Fiction", "Blob"],
|
||||||
|
"color": "scarlet"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"title": "Moana",
|
||||||
|
"genres": ["Fantasy", "Action", "Blob"],
|
||||||
|
"color": "coral"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"title": "Philadelphia",
|
||||||
|
"genres": ["Drama", "Blob"],
|
||||||
|
"color": "navy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"title": "The Matrix",
|
||||||
|
"genres": ["Science Fiction", "Action", "Blob"],
|
||||||
|
"color": "onyx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"title": "Inception",
|
||||||
|
"genres": ["Science Fiction", "Thriller", "Blob"],
|
||||||
|
"color": "cerulean"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9,
|
||||||
|
"title": "The Shawshank Redemption",
|
||||||
|
"genres": ["Drama", "Blob"],
|
||||||
|
"color": "slate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"title": "Pulp Fiction",
|
||||||
|
"genres": ["Crime", "Drama", "Blob"],
|
||||||
|
"color": "gold"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"title": "The Dark Knight",
|
||||||
|
"genres": ["Action", "Crime", "Blob"],
|
||||||
|
"color": "obsidian"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"title": "Forrest Gump",
|
||||||
|
"genres": ["Drama", "Romance", "Blob"],
|
||||||
|
"color": "jade"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"title": "The Godfather",
|
||||||
|
"genres": ["Crime", "Drama", "Blob"],
|
||||||
|
"color": "sepia"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"title": "Fight Club",
|
||||||
|
"genres": ["Drama", "Thriller", "Blob"],
|
||||||
|
"color": "ruby"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 15,
|
||||||
|
"title": "Goodfellas",
|
||||||
|
"genres": ["Crime", "Biography", "Blob"],
|
||||||
|
"color": "charcoal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 16,
|
||||||
|
"title": "The Silence of the Lambs",
|
||||||
|
"genres": ["Crime", "Thriller", "Blob"],
|
||||||
|
"color": "amethyst"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 17,
|
||||||
|
"title": "Schindler's List",
|
||||||
|
"genres": ["Biography", "Drama", "Blob"],
|
||||||
|
"color": "ebony"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 18,
|
||||||
|
"title": "The Lord of the Rings",
|
||||||
|
"genres": ["Adventure", "Fantasy", "Blob"],
|
||||||
|
"color": "forest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
|
"title": "Star Wars",
|
||||||
|
"genres": ["Science Fiction", "Adventure", "Blob"],
|
||||||
|
"color": "amber"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"title": "Jurassic Park",
|
||||||
|
"genres": ["Adventure", "Science Fiction", "Blob"],
|
||||||
|
"color": "lime"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21,
|
||||||
|
"title": "Titanic",
|
||||||
|
"genres": ["Drama", "Romance", "Blob"],
|
||||||
|
"color": "sapphire"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 22,
|
||||||
|
"title": "The Avengers",
|
||||||
|
"genres": ["Action", "Science Fiction", "Blob"],
|
||||||
|
"color": "burgundy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 23,
|
||||||
|
"title": "Avatar",
|
||||||
|
"genres": ["Science Fiction", "Adventure", "Blob"],
|
||||||
|
"color": "turquoise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 24,
|
||||||
|
"title": "The Green Mile",
|
||||||
|
"genres": ["Crime", "Fantasy", "Blob"],
|
||||||
|
"color": "emerald"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 25,
|
||||||
|
"title": "Gladiator",
|
||||||
|
"genres": ["Action", "Drama", "Blob"],
|
||||||
|
"color": "sepia"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 26,
|
||||||
|
"title": "The Departed",
|
||||||
|
"genres": ["Crime", "Thriller", "Blob"],
|
||||||
|
"color": "crimson"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 27,
|
||||||
|
"title": "Saving Private Ryan",
|
||||||
|
"genres": ["Drama", "War", "Blob"],
|
||||||
|
"color": "slate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 28,
|
||||||
|
"title": "Interstellar",
|
||||||
|
"genres": ["Science Fiction", "Adventure", "Blob"],
|
||||||
|
"color": "azure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 29,
|
||||||
|
"title": "The Pianist",
|
||||||
|
"genres": ["Biography", "Drama", "Blob"],
|
||||||
|
"color": "onyx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 30,
|
||||||
|
"title": "The Usual Suspects",
|
||||||
|
"genres": ["Crime", "Mystery", "Blob"],
|
||||||
|
"color": "charcoal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 31,
|
||||||
|
"title": "The Sixth Sense",
|
||||||
|
"genres": ["Mystery", "Thriller", "Blob"],
|
||||||
|
"color": "amethyst"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 32,
|
||||||
|
"title": "The Princess Bride",
|
||||||
|
"genres": ["Adventure", "Romance", "Blob"],
|
||||||
|
"color": "ruby"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 33,
|
||||||
|
"title": "Blade Runner",
|
||||||
|
"genres": ["Science Fiction", "Noir", "Blob"],
|
||||||
|
"color": "sapphire"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 34,
|
||||||
|
"title": "The Big Lebowski",
|
||||||
|
"genres": ["Comedy", "Crime", "Blob"],
|
||||||
|
"color": "gold"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 35,
|
||||||
|
"title": "Good Will Hunting",
|
||||||
|
"genres": ["Drama", "Romance", "Blob"],
|
||||||
|
"color": "turquoise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 36,
|
||||||
|
"title": "The Terminator",
|
||||||
|
"genres": ["Action", "Science Fiction", "Blob"],
|
||||||
|
"color": "obsidian"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 37,
|
||||||
|
"title": "Casablanca",
|
||||||
|
"genres": ["Drama", "Romance", "Blob"],
|
||||||
|
"color": "jade"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 38,
|
||||||
|
"title": "The Exorcist",
|
||||||
|
"genres": ["Horror", "Thriller", "Blob"],
|
||||||
|
"color": "burgundy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 39,
|
||||||
|
"title": "Apocalypse Now",
|
||||||
|
"genres": ["Drama", "War", "Blob"],
|
||||||
|
"color": "forest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 40,
|
||||||
|
"title": "Back to the Future",
|
||||||
|
"genres": ["Adventure", "Comedy", "Blob"],
|
||||||
|
"color": "amber"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 41,
|
||||||
|
"title": "The Graduate",
|
||||||
|
"genres": ["Comedy", "Drama", "Blob"],
|
||||||
|
"color": "azure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 42,
|
||||||
|
"title": "Alien",
|
||||||
|
"genres": ["Horror", "Science Fiction", "Blob"],
|
||||||
|
"color": "obsidian"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 43,
|
||||||
|
"title": "The Breakfast Club",
|
||||||
|
"genres": ["Drama", "Comedy", "Blob"],
|
||||||
|
"color": "coral"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 44,
|
||||||
|
"title": "Die Hard",
|
||||||
|
"genres": ["Action", "Thriller", "Blob"],
|
||||||
|
"color": "scarlet"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 45,
|
||||||
|
"title": "The Sound of Music",
|
||||||
|
"genres": ["Drama", "Musical", "Blob"],
|
||||||
|
"color": "emerald"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 46,
|
||||||
|
"title": "Jaws",
|
||||||
|
"genres": ["Horror", "Thriller", "Blob"],
|
||||||
|
"color": "navy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 47,
|
||||||
|
"title": "Rocky",
|
||||||
|
"genres": ["Drama", "Sport", "Blob"],
|
||||||
|
"color": "burgundy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 48,
|
||||||
|
"title": "E.T. the Extra-Terrestrial",
|
||||||
|
"genres": ["Adventure", "Science Fiction", "Blob"],
|
||||||
|
"color": "amber"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 49,
|
||||||
|
"title": "The Godfather Part II",
|
||||||
|
"genres": ["Crime", "Drama", "Blob"],
|
||||||
|
"color": "sepia"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 50,
|
||||||
|
"title": "One Flew Over the Cuckoo's Nest",
|
||||||
|
"genres": ["Drama", "Blob"],
|
||||||
|
"color": "slate"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
let (response, code) =
|
||||||
|
index.update_settings_filterable_attributes(json!(["genres", "color"])).await;
|
||||||
|
assert_eq!(202, code, "{:?}", response);
|
||||||
|
index.wait_task(response.uid()).await;
|
||||||
|
let (response, code) = index.update_settings_distinct_attribute(json!("color")).await;
|
||||||
|
assert_eq!(202, code, "{:?}", response);
|
||||||
|
index.wait_task(response.uid()).await;
|
||||||
|
|
||||||
|
let (response, _code) = index.add_documents(documents, None).await;
|
||||||
|
index.wait_task(response.uid()).await;
|
||||||
|
|
||||||
|
let (response, code) =
|
||||||
|
index.facet_search(json!({"facetQuery": "blob", "facetName": "genres", "q": "" })).await;
|
||||||
|
|
||||||
|
// non-exhaustive facet count is counting 27 documents with the facet query "blob" but there are only 23 documents with a distinct color.
|
||||||
|
assert_eq!(code, 200, "{}", response);
|
||||||
|
snapshot!(response["facetHits"], @r###"[{"value":"Blob","count":27}]"###);
|
||||||
|
|
||||||
|
let (response, code) =
|
||||||
|
index.facet_search(json!({"facetQuery": "blob", "facetName": "genres", "q": "", "exhaustiveFacetCount": true })).await;
|
||||||
|
|
||||||
|
// exhaustive facet count is counting 23 documents with the facet query "blob" which is the number of distinct colors.
|
||||||
|
assert_eq!(code, 200, "{}", response);
|
||||||
|
snapshot!(response["facetHits"], @r###"[{"value":"Blob","count":23}]"###);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user