Skip to content

Commit 6c9bb9f

Browse files
authored
Merge pull request #13 from JoshuaCarter/fix-default-filters
fix(ElasticasSearchEngine): Default filter behaviour
2 parents a9ad164 + 155d2be commit 6c9bb9f

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/ElasticaSearchEngine.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -281,29 +281,31 @@ public function getSearchResults($data = null, $form = null, $page = null)
281281
}
282282
}
283283

284+
$filtersAdded = [];
284285
if (isset($data['UserFilter'])) {
285-
$applyDefault = false;
286286
$filters = $page->UserFilters->getValues();
287287
if (count($filters)) {
288288
$queries = array_keys($filters);
289289
foreach ($data['UserFilter'] as $index => $junk) {
290290
if (isset($queries[$index])) {
291291
$fv = explode(':', $queries[$index]);
292292
$builder->addFilter($fv[0], $fv[1]);
293+
$filtersAdded[$fv[0]] = $fv[1];
293294
}
294295
}
295296
}
296297
}
297298

298-
if ($applyDefault) {
299-
if ($page->InitialExpandField) {
300-
// we only support a single field for now
301-
$builder->setExpandFacetResults([$page->InitialExpandField => $page->ExpandedResultCount]);
302-
}
299+
if ($page->InitialExpandField) {
300+
// we only support a single field for now
301+
$builder->setExpandFacetResults([$page->InitialExpandField => $page->ExpandedResultCount]);
302+
}
303303

304-
$defaultFilters = $page->DefaultFilters->getValues() ?? [];
305-
// add as post filter in case there's facets for this field
306-
foreach ($defaultFilters as $field => $value) {
304+
$defaultFilters = $page->DefaultFilters->getValues() ?? [];
305+
// add as post filter in case there's facets for this field
306+
foreach ($defaultFilters as $field => $value) {
307+
// only add defaults that haven't been overriden
308+
if (!isset($filtersAdded[$field])) {
307309
$builder->addFilter($field, $value);
308310
}
309311
}

0 commit comments

Comments
 (0)