Skip to content
Snippets Groups Projects
Commit 8acab375 authored by Demian Katz's avatar Demian Katz Committed by Robert Lange
Browse files

EDS: Override empty search with a default query. (#1551)

parent 6d3801b1
No related merge requests found
......@@ -44,6 +44,14 @@ use VuFindSearch\Query\QueryGroup;
*/
class QueryBuilder
{
/**
* Default query (used when query string is empty). This should retrieve all
* records in the index, facilitating high-level facet-based browsing.
*
* @var string
*/
protected $defaultQuery = '(FT yes) OR (FT no)';
/**
* Constructor
*/
......@@ -82,6 +90,10 @@ class QueryBuilder
$expression = SearchRequestModel::escapeSpecialCharacters($expression);
$fieldCode = ($query->getHandler() == 'AllFields')
? '' : $query->getHandler(); //fieldcode
// Special case: default search
if (empty($fieldCode) && empty($expression)) {
return $this->defaultQuery;
}
if (!empty($fieldCode)) {
$expression = $fieldCode . ':' . $expression;
}
......
......@@ -42,6 +42,23 @@ use VuFindSearch\Backend\EDS\QueryBuilder;
*/
class QueryBuilderTest extends TestCase
{
/**
* Test special case for blank queries.
*
* @return void
*/
public function testBlankSearch()
{
$qb = new QueryBuilder();
$params = $qb->build(new \VuFindSearch\Query\Query());
$this->assertEquals(
[
'query' => ['(FT yes) OR (FT no)']
],
$params->getArrayCopy()
);
}
/**
* Test query parsing.
*
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment