Skip to content
Snippets Groups Projects
Commit 32ad1d37 authored by Demian Katz's avatar Demian Katz
Browse files

Fixed bug: cannot retrieve all records from sharded results.

parent eb1681f7
No related merge requests found
...@@ -117,12 +117,20 @@ class MultiIndexListener ...@@ -117,12 +117,20 @@ class MultiIndexListener
$backend = $event->getTarget(); $backend = $event->getTarget();
if ($backend === $this->backend) { if ($backend === $this->backend) {
$params = $event->getParam('params'); $params = $event->getParam('params');
$shards = explode(',', implode(',', $params->get('shards'))); if ($event->getParam('context') == 'retrieve') {
$fields = $this->getFields($shards); // If we're retrieving a record, we should pull all shards to be
$specs = $this->getSearchSpecs($fields); // sure we find it.
$backend->getQueryBuilder()->setSpecs($specs); $params->set('shards', implode(',', $this->shards));
$facets = $params->get('facet.field') ?: array(); } else {
$params->set('facet.field', array_diff($facets, $fields)); // In any other context, we should make sure our field values are
// all legal.
$shards = explode(',', implode(',', $params->get('shards')));
$fields = $this->getFields($shards);
$specs = $this->getSearchSpecs($fields);
$backend->getQueryBuilder()->setSpecs($specs);
$facets = $params->get('facet.field') ?: array();
$params->set('facet.field', array_diff($facets, $fields));
}
} }
return $event; return $event;
} }
......
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