public function Score::query in Drupal 8
Same name in this branch
- 8 core/modules/search/src/Plugin/views/sort/Score.php \Drupal\search\Plugin\views\sort\Score::query()
 - 8 core/modules/search/src/Plugin/views/field/Score.php \Drupal\search\Plugin\views\field\Score::query()
 
Same name and namespace in other branches
- 9 core/modules/search/src/Plugin/views/sort/Score.php \Drupal\search\Plugin\views\sort\Score::query()
 
Called to add the sort to a query.
Overrides SortPluginBase::query
File
- core/
modules/ search/ src/ Plugin/ views/ sort/ Score.php, line 19  
Class
- Score
 - Sort handler for sorting by search score.
 
Namespace
Drupal\search\Plugin\views\sortCode
public function query() {
  // Check to see if the search filter/argument added 'score' to the table.
  // Our filter stores it as $handler->search_score -- and we also
  // need to check its relationship to make sure that we're using the same
  // one or obviously this won't work.
  foreach ([
    'filter',
    'argument',
  ] as $type) {
    foreach ($this->view->{$type} as $handler) {
      if (isset($handler->search_score) && $handler->relationship == $this->relationship) {
        $this->query
          ->addOrderBy(NULL, NULL, $this->options['order'], $handler->search_score);
        $this->tableAlias = $handler->tableAlias;
        return;
      }
    }
  }
  // Do nothing if there is no filter/argument in place. There is no way
  // to sort on scores.
}