Skip to content

Commit

Permalink
EZP-26630: Support per-query raw filters
Browse files Browse the repository at this point in the history
  • Loading branch information
peterkeung committed Nov 19, 2016
1 parent 20f281e commit ea19ed3
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
12 changes: 12 additions & 0 deletions classes/ezfezpsolrquerybuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ public function buildMultiFieldQuery( $searchText, $solrFields = array(), $boost
* 'SearchContentClassAttributeID' => <class attribute ID>,
* 'Facet' => array( array( 'field' => <class identifier>/<attribute identifier>[/<option>], ... ) ) ),
* 'Filter' => array( <base_name> => <value>, <base_name2> => <value2> ),
* 'RawFilter' => array( <raw_filter> ),
* 'SortBy' => array( <field> => <asc|desc> [, <field2> => <asc|desc> [,...]] ) |
* array( array( <field> => <asc|desc> )[, array( <field2> => <asc|desc> )[,...]] ),
* 'BoostFunctions' => array( 'fields' => array(
Expand Down Expand Up @@ -292,6 +293,17 @@ public function buildSearch( $searchText, $params = array(), $searchTypes = arra
}
}

// Add per-query raw filters
// Check if raw filter parameter is indeed an array, and set it otherwise
if ( isset( $params['RawFilter']) && ! is_array( $params['RawFilter'] ) )
{
$params['RawFilter'] = array( $params['RawFilter'] );
}
if ( $params['RawFilter'] )
{
$filterQuery = array_merge( $filterQuery, $params['RawFilter'] );
}

// Build and get facet query prameters.
$facetQueryParamList = $this->buildFacetQueryParamList( $params );

Expand Down
4 changes: 3 additions & 1 deletion classes/ezfmodulefunctioncollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public function getFilterParameters()
* @param int Limit
* @param array Facet definition
* @param array Filter parameters
* @param array Raw filter parameters
* @param array Sort by parameters
* @param mixed Content class ID or list of content class IDs
* @param array list of subtree limitation node IDs
Expand All @@ -80,7 +81,7 @@ public function getFilterParameters()
* @return array Search result
*/
public function search( $query, $offset = 0, $limit = 10, $facets = null,
$filters = null, $sortBy = null, $classID = null, $sectionID = null,
$filters = null, $rawFilters = null, $sortBy = null, $classID = null, $sectionID = null,
$subtreeArray = null, $ignoreVisibility = null, $limitation = null, $asObjects = true, $spellCheck = null, $boostFunctions = null, $queryHandler = 'ezpublish',
$enableElevation = true, $forceElevation = false, $publishDate = null, $distributedSearch = null, $fieldsToReturn = null, $searchResultClustering = null, $extendedAttributeFilter = array() )
{
Expand All @@ -90,6 +91,7 @@ public function search( $query, $offset = 0, $limit = 10, $facets = null,
'Facet' => $facets,
'SortBy' => $sortBy,
'Filter' => $filters,
'RawFilter' => $rawFilters,
'SearchContentClassID' => $classID,
'SearchSectionID' => $sectionID,
'SearchSubTreeArray' => $subtreeArray,
Expand Down
4 changes: 4 additions & 0 deletions modules/ezfind/function_definition.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
'type' => 'array',
'required' => false,
'default' => null ),
array( 'name' => 'raw_filter',
'type' => 'array',
'required' => false,
'default' => null ),
array( 'name' => 'sort_by',
'type' => 'array',
'required' => false,
Expand Down

0 comments on commit ea19ed3

Please sign in to comment.