mirror of https://github.com/kiwix/libkiwix.git
Made catalog filtering by query diacritics insensitive
Catalog filtering by titles/description was sensitive to diacritics present in the query string. Fixed that. Also enhanced the unit test to validate the insensitivity to diacritics present in either the title/description or the query string.
This commit is contained in:
parent
9c7366890d
commit
87dc9d2723
|
@ -350,10 +350,11 @@ Xapian::Query buildXapianQueryFromFilterQuery(const Filter& filter)
|
|||
//queryParser.set_stemming_strategy(Xapian::QueryParser::STEM_SOME);
|
||||
const auto flags = Xapian::QueryParser::FLAG_PHRASE
|
||||
| Xapian::QueryParser::FLAG_BOOLEAN
|
||||
| Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE
|
||||
| Xapian::QueryParser::FLAG_LOVEHATE
|
||||
| Xapian::QueryParser::FLAG_WILDCARD
|
||||
| partialQueryFlag;
|
||||
return queryParser.parse_query(filter.getQuery(), flags);
|
||||
return queryParser.parse_query(normalizeText(filter.getQuery()), flags);
|
||||
}
|
||||
|
||||
Xapian::Query nameQuery(const std::string& name)
|
||||
|
|
|
@ -436,12 +436,31 @@ TEST_F(LibraryTest, filterByQuery)
|
|||
"Mythology & Folklore Stack Exchange"
|
||||
);
|
||||
|
||||
// filtering by query is diacritics insensitive on titles
|
||||
EXPECT_FILTER_RESULTS(kiwix::Filter().query("mathematiques"),
|
||||
"Mathématiques",
|
||||
);
|
||||
EXPECT_FILTER_RESULTS(kiwix::Filter().query("èxchângé"),
|
||||
"Islam Stack Exchange",
|
||||
"Movies & TV Stack Exchange",
|
||||
"Mythology & Folklore Stack Exchange"
|
||||
);
|
||||
|
||||
// filtering by query is case insensitive on description/summary
|
||||
EXPECT_FILTER_RESULTS(kiwix::Filter().query("enTHUSiaSTS"),
|
||||
"Movies & TV Stack Exchange",
|
||||
"Mythology & Folklore Stack Exchange"
|
||||
);
|
||||
|
||||
// filtering by query is diacritics insensitive on description/summary
|
||||
EXPECT_FILTER_RESULTS(kiwix::Filter().query("selection"),
|
||||
"Géographie par Wikipédia"
|
||||
);
|
||||
EXPECT_FILTER_RESULTS(kiwix::Filter().query("enthúsïåsts"),
|
||||
"Movies & TV Stack Exchange",
|
||||
"Mythology & Folklore Stack Exchange"
|
||||
);
|
||||
|
||||
// by default, filtering by query assumes partial query
|
||||
EXPECT_FILTER_RESULTS(kiwix::Filter().query("Wiki"),
|
||||
"Encyclopédie de la Tunisie",
|
||||
|
|
Loading…
Reference in New Issue