public function SearchQuery::addScore

Adds a custom score expression to the search query.

Each score expression can optionally use a multiplier, and multiple expressions are combined.

Parameters

$score: The score expression.

$arguments: Custom query arguments for that expression.

$multiply: If set, the score is multiplied with that value. Search query ensures that the search scores are still normalized.

Return value

object The updated query object.

1 call to SearchQuery::addScore()
SearchQuery::execute in drupal/core/modules/search/lib/Drupal/search/SearchQuery.php
Executes the search.

File

drupal/core/modules/search/lib/Drupal/search/SearchQuery.php, line 415
Definition of Drupal\search\SearchQuery.

Class

SearchQuery
Performs a query on the full-text search index for a word or words.

Namespace

Drupal\search

Code

public function addScore($score, $arguments = array(), $multiply = FALSE) {
  if ($multiply) {
    $i = count($this->multiply);
    $score = "CAST(:multiply_{$i} AS DECIMAL) * COALESCE(( " . $score . "), 0) / CAST(:total_{$i} AS DECIMAL)";
    $arguments[':multiply_' . $i] = $multiply;
    $this->multiply[] = $multiply;
  }
  $this->scores[] = $score;
  $this->scoresArguments += $arguments;
  return $this;
}