mirror of
https://github.com/kiwix/libkiwix.git
synced 2025-08-03 10:16:03 -04:00
Disabled Xapian boolean operators in catalog query
This commit is contained in:
parent
de64a5a724
commit
01bda6b2c0
@ -645,8 +645,6 @@ Xapian::Query buildXapianQueryFromFilterQuery(const Filter& filter)
|
|||||||
//queryParser.set_stemmer(Xapian::Stem(iso639_3ToXapian(???)));
|
//queryParser.set_stemmer(Xapian::Stem(iso639_3ToXapian(???)));
|
||||||
//queryParser.set_stemming_strategy(Xapian::QueryParser::STEM_SOME);
|
//queryParser.set_stemming_strategy(Xapian::QueryParser::STEM_SOME);
|
||||||
const auto flags = Xapian::QueryParser::FLAG_PHRASE
|
const auto flags = Xapian::QueryParser::FLAG_PHRASE
|
||||||
| Xapian::QueryParser::FLAG_BOOLEAN
|
|
||||||
| Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE
|
|
||||||
| Xapian::QueryParser::FLAG_LOVEHATE
|
| Xapian::QueryParser::FLAG_LOVEHATE
|
||||||
| Xapian::QueryParser::FLAG_WILDCARD
|
| Xapian::QueryParser::FLAG_WILDCARD
|
||||||
| partialQueryFlag;
|
| partialQueryFlag;
|
||||||
|
@ -781,27 +781,67 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_search_terms)
|
|||||||
TEST_F(LibraryServerTest, catalog_v2_entries_filtering_special_queries)
|
TEST_F(LibraryServerTest, catalog_v2_entries_filtering_special_queries)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
// 'or' acts as a Xapian boolean operator, resulting in malformed query
|
// 'or' doesn't act as a Xapian boolean operator
|
||||||
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=Or");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=Or");
|
||||||
EXPECT_EQ(r->status, 500);
|
EXPECT_EQ(r->status, 200);
|
||||||
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=Or")
|
||||||
|
" <title>Filtered Entries (q=Or)</title>\n"
|
||||||
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
|
" <totalResults>1</totalResults>\n"
|
||||||
|
" <startIndex>0</startIndex>\n"
|
||||||
|
" <itemsPerPage>1</itemsPerPage>\n"
|
||||||
|
CHARLES_RAY_CATALOG_ENTRY
|
||||||
|
"</feed>\n"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// 'and' acts as a Xapian boolean operator, resulting in malformed query
|
// 'and' doesn't act as a Xapian boolean operator
|
||||||
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=and");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=and");
|
||||||
EXPECT_EQ(r->status, 500);
|
EXPECT_EQ(r->status, 200);
|
||||||
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=and")
|
||||||
|
" <title>Filtered Entries (q=and)</title>\n"
|
||||||
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
|
" <totalResults>1</totalResults>\n"
|
||||||
|
" <startIndex>0</startIndex>\n"
|
||||||
|
" <itemsPerPage>1</itemsPerPage>\n"
|
||||||
|
CHARLES_RAY_CATALOG_ENTRY
|
||||||
|
"</feed>\n"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// 'not' acts as a Xapian boolean operator, resulting in malformed query
|
// 'not' doesn't act as a Xapian boolean operator
|
||||||
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=not");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=not");
|
||||||
EXPECT_EQ(r->status, 500);
|
EXPECT_EQ(r->status, 200);
|
||||||
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=not")
|
||||||
|
" <title>Filtered Entries (q=not)</title>\n"
|
||||||
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
|
" <totalResults>1</totalResults>\n"
|
||||||
|
" <startIndex>0</startIndex>\n"
|
||||||
|
" <itemsPerPage>1</itemsPerPage>\n"
|
||||||
|
RAY_CHARLES_CATALOG_ENTRY
|
||||||
|
"</feed>\n"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// 'xor' acts as a Xapian boolean operator, resulting in malformed query
|
// 'xor' doesn't act as a Xapian boolean operator
|
||||||
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=xor");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=xor");
|
||||||
EXPECT_EQ(r->status, 500);
|
EXPECT_EQ(r->status, 200);
|
||||||
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=xor")
|
||||||
|
" <title>Filtered Entries (q=xor)</title>\n"
|
||||||
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
|
" <totalResults>1</totalResults>\n"
|
||||||
|
" <startIndex>0</startIndex>\n"
|
||||||
|
" <itemsPerPage>1</itemsPerPage>\n"
|
||||||
|
UNCATEGORIZED_RAY_CHARLES_CATALOG_ENTRY
|
||||||
|
"</feed>\n"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -812,12 +852,10 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtering_special_queries)
|
|||||||
CATALOG_V2_ENTRIES_PREAMBLE("?q=wikipedia%20or%20library")
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=wikipedia%20or%20library")
|
||||||
" <title>Filtered Entries (q=wikipedia%20or%20library)</title>\n"
|
" <title>Filtered Entries (q=wikipedia%20or%20library)</title>\n"
|
||||||
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
" <totalResults>3</totalResults>\n"
|
" <totalResults>1</totalResults>\n"
|
||||||
" <startIndex>0</startIndex>\n"
|
" <startIndex>0</startIndex>\n"
|
||||||
" <itemsPerPage>3</itemsPerPage>\n"
|
" <itemsPerPage>1</itemsPerPage>\n"
|
||||||
UNCATEGORIZED_RAY_CHARLES_CATALOG_ENTRY
|
|
||||||
CHARLES_RAY_CATALOG_ENTRY
|
CHARLES_RAY_CATALOG_ENTRY
|
||||||
RAY_CHARLES_CATALOG_ENTRY
|
|
||||||
"</feed>\n"
|
"</feed>\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -830,11 +868,10 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtering_special_queries)
|
|||||||
CATALOG_V2_ENTRIES_PREAMBLE("?q=wikipedia%20and%20articles")
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=wikipedia%20and%20articles")
|
||||||
" <title>Filtered Entries (q=wikipedia%20and%20articles)</title>\n"
|
" <title>Filtered Entries (q=wikipedia%20and%20articles)</title>\n"
|
||||||
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
" <totalResults>2</totalResults>\n"
|
" <totalResults>1</totalResults>\n"
|
||||||
" <startIndex>0</startIndex>\n"
|
" <startIndex>0</startIndex>\n"
|
||||||
" <itemsPerPage>2</itemsPerPage>\n"
|
" <itemsPerPage>1</itemsPerPage>\n"
|
||||||
CHARLES_RAY_CATALOG_ENTRY
|
CHARLES_RAY_CATALOG_ENTRY
|
||||||
RAY_CHARLES_CATALOG_ENTRY
|
|
||||||
"</feed>\n"
|
"</feed>\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user