diff --git a/module/VuFind/src/VuFind/OAI/Server.php b/module/VuFind/src/VuFind/OAI/Server.php index f01b3e5ef01e5c9c9fe5d930a9c9ff73adaf3d1b..e7a4c7bceea040bdf761e4417d08f2c255be5636 100644 --- a/module/VuFind/src/VuFind/OAI/Server.php +++ b/module/VuFind/src/VuFind/OAI/Server.php @@ -722,7 +722,9 @@ class Server // Apply filters as needed. if (!empty($set)) { if (isset($this->setQueries[$set])) { - $params->addFilter($this->setQueries[$set]); + // use hidden filter here to allow for complex queries; + // plain old addFilter expects simple field:value queries. + $params->getOptions()->addHiddenFilter($this->setQueries[$set]); } else if (null !== $this->setField) { $params->addFilter( $this->setField . ':"' . addcslashes($set, '"') . '"'