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; ...@@ -44,6 +44,14 @@ use VuFindSearch\Query\QueryGroup;
*/ */
class QueryBuilder 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 * Constructor
*/ */
...@@ -82,6 +90,10 @@ class QueryBuilder ...@@ -82,6 +90,10 @@ class QueryBuilder
$expression = SearchRequestModel::escapeSpecialCharacters($expression); $expression = SearchRequestModel::escapeSpecialCharacters($expression);
$fieldCode = ($query->getHandler() == 'AllFields') $fieldCode = ($query->getHandler() == 'AllFields')
? '' : $query->getHandler(); //fieldcode ? '' : $query->getHandler(); //fieldcode
// Special case: default search
if (empty($fieldCode) && empty($expression)) {
return $this->defaultQuery;
}
if (!empty($fieldCode)) { if (!empty($fieldCode)) {
$expression = $fieldCode . ':' . $expression; $expression = $fieldCode . ':' . $expression;
} }
......
...@@ -42,6 +42,23 @@ use VuFindSearch\Backend\EDS\QueryBuilder; ...@@ -42,6 +42,23 @@ use VuFindSearch\Backend\EDS\QueryBuilder;
*/ */
class QueryBuilderTest extends TestCase 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. * 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