Found the answer on a osclass support forum. Seems to work OK on the Epsilon theme.
Include the following in the theme function.php to search all keywords:
function cust_pattern_search_all_keywords_only($params) {
if (@$params['sPattern'] != '') {
$mSearch = Search::newInstance();
$query_elements = json_decode($mSearch->toJson(), true);
$pattern = $query_elements['sPattern'];
foreach (explode(' ', $pattern) as $word) {
//$query_elements['sPattern'] = str_replace($word, '+' . $word . '*', $query_elements['sPattern']); //search with wildcard egg => eggs
$query_elements['sPattern'] = str_replace($word, '+' . $word, $query_elements['sPattern']);
}
$mSearch->addLocale('%');
$mSearch->addGroupBy(DB_TABLE_PREFIX.'t_item.pk_i_id');
$mSearch->setJsonAlert($query_elements);
}
}
osc_add_hook('search_conditions', 'cust_pattern_search_all_keywords_only', 10);