|
@@ -169,12 +169,13 @@ class Base extends ControllerBase {
|
|
$this->or_query->keys(implode(' ', $this->keys));
|
|
$this->or_query->keys(implode(' ', $this->keys));
|
|
}
|
|
}
|
|
|
|
|
|
- // exclude results from and_query
|
|
|
|
- $exclude_and_results_conditions = $this->or_query->createConditionGroup('AND');
|
|
|
|
- foreach ($this->results['nids'] as $nid) {
|
|
|
|
- $exclude_and_results_conditions->addCondition('nid', $nid, '<>');
|
|
|
|
- }
|
|
|
|
- $this->or_query->addConditionGroup($exclude_and_results_conditions);
|
|
|
|
|
|
+ // // exclude results from previous and_query
|
|
|
|
+ // !! trigering solr "too many boolean clauses" error
|
|
|
|
+ // $exclude_and_results_conditions = $this->or_query->createConditionGroup('AND');
|
|
|
|
+ // foreach ($this->results['nids'] as $nid) {
|
|
|
|
+ // $exclude_and_results_conditions->addCondition('nid', $nid, '<>');
|
|
|
|
+ // }
|
|
|
|
+ // $this->or_query->addConditionGroup($exclude_and_results_conditions);
|
|
|
|
|
|
if (preg_match_all('/[WTRPCMFGSO]\d{4}/i', implode(' ', $this->keys), $matches)) {
|
|
if (preg_match_all('/[WTRPCMFGSO]\d{4}/i', implode(' ', $this->keys), $matches)) {
|
|
// in case we search for material references like W0117
|
|
// in case we search for material references like W0117
|
|
@@ -226,8 +227,12 @@ class Base extends ControllerBase {
|
|
$or_results = $this->or_query->execute();
|
|
$or_results = $this->or_query->execute();
|
|
|
|
|
|
foreach ($or_results as $result) {
|
|
foreach ($or_results as $result) {
|
|
- $this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
|
|
|
|
- $this->results['nids'][] = $result->getField('nid')->getValues()[0];
|
|
|
|
|
|
+ $nid = $result->getField('nid')->getValues()[0];
|
|
|
|
+ // !! have to remove duplicates instead of $exclude_and_results_conditions (solr too many boolean clauses)
|
|
|
|
+ if ( !in_array($nid, $this->results['nids']) ) {
|
|
|
|
+ $this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
|
|
|
|
+ $this->results['nids'][] = $nid;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
// todo you may like / more like this
|
|
// todo you may like / more like this
|