SearchQuery

Search query extender and helper functions.

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

This query is used by search plugins that use the search index (not all search plugins do, as some use a different searching mechanism). It assumes you have set up a query on the {search_index} table with alias 'i', and will only work if the user is searching for at least one "positive" keyword or phrase.

For efficiency, users of this query can run the prepareAndNormalize() method to figure out if there are any search results, before fully setting up and calling execute() to execute the query. The scoring expressions are not needed until the execute() step. However, it's not really necessary to do this, because this class's execute() method does that anyway.

During both the prepareAndNormalize() and execute() steps, there can be problems. Call getStatus() to figure out if the query is OK or not.

The query object is given the tag 'search_$type' and can be further extended with hook_query_alter().

Hierarchy

File

core/modules/search/src/SearchQuery.php, line 32

Namespace

Drupal\search

Members

Name Modifiers Type Description
SearchQuery::$conditions protected property Conditions that are used for exact searches.
SearchQuery::$executedPrepare protected property Indicates whether the preparation step has been executed.
SearchQuery::$keys protected property Parsed-out positive and negative search keys.
SearchQuery::$matches protected property Indicates how many matches for a search query are necessary.
SearchQuery::$multiply protected property Multipliers for score expressions.
SearchQuery::$normalize protected property Multiplier to normalize the keyword score.
SearchQuery::$relevance_count protected property The number of 'i.relevance' occurrences in score expressions.
SearchQuery::$scores protected property The word score expressions.
SearchQuery::$scoresArguments protected property Arguments for the score expressions.
SearchQuery::$searchExpression protected property The keywords and advanced search options that are entered by the user.
SearchQuery::$simple protected property Indicates whether the query conditions are simple or complex (LIKE).
SearchQuery::$status protected property A bitmap of status conditions, described in getStatus().
SearchQuery::$type protected property The type of search (search type).
SearchQuery::$words protected property Array of positive search words.
SearchQuery::addScore public function Adds a custom score expression to the search query.
SearchQuery::countQuery public function Builds the default count query for SearchQuery. Overrides SelectExtender::countQuery
SearchQuery::execute public function Executes the search. Overrides SelectExtender::execute
SearchQuery::EXPRESSIONS_IGNORED constant Indicates that part of the search expression was ignored.
SearchQuery::getStatus public function Returns the query status bitmap.
SearchQuery::LOWER_CASE_OR constant Indicates that lower-case "or" was in the search expression.
SearchQuery::NO_KEYWORD_MATCHES constant Indicates that no positive keyword matches were found.
SearchQuery::NO_POSITIVE_KEYWORDS constant Indicates no positive keywords were in the search expression.
SearchQuery::parseSearchExpression protected function Parses the search query into SQL conditions.
SearchQuery::parseWord protected function Parses a word or phrase for parseQuery().
SearchQuery::preExecute public function Generic preparation and validation for a SELECT query. Overrides SelectExtender::preExecute
SearchQuery::prepareAndNormalize public function Prepares the query and calculates the normalization factor.
SearchQuery::searchExpression public function Sets the search query expression.
SelectExtender::$connection protected property The connection object on which to run this query.
SelectExtender::$placeholder protected property The placeholder counter.
SelectExtender::$query protected property The Select query object we are extending/decorating.
SelectExtender::$uniqueIdentifier protected property A unique identifier for this query object.
SelectExtender::addExpression public function Adds an expression to the list of "fields" to be SELECTed. Overrides SelectInterface::addExpression
SelectExtender::addField public function Adds a field to the list to be SELECTed. Overrides SelectInterface::addField
SelectExtender::addJoin public function Join against another table in the database. Overrides SelectInterface::addJoin
SelectExtender::addMetaData public function Adds additional metadata to the query. Overrides AlterableInterface::addMetaData
SelectExtender::addTag public function Adds a tag to a query. Overrides AlterableInterface::addTag
SelectExtender::andConditionGroup public function Creates a new group of conditions ANDed together. Overrides ConditionInterface::andConditionGroup
SelectExtender::arguments public function Gets a complete list of all values to insert into the prepared statement. Overrides ConditionInterface::arguments
SelectExtender::compile public function Compiles the saved conditions for later retrieval. Overrides ConditionInterface::compile
SelectExtender::compiled public function Check whether a condition has been previously compiled. Overrides ConditionInterface::compiled
SelectExtender::condition public function Helper function: builds the most common conditional clauses. Overrides ConditionInterface::condition
SelectExtender::conditionGroupFactory public function Creates an object holding a group of conditions. Overrides ConditionInterface::conditionGroupFactory
SelectExtender::conditions public function Gets a complete list of all conditions in this conditional clause. Overrides ConditionInterface::conditions
SelectExtender::distinct public function Sets this query to be DISTINCT. Overrides SelectInterface::distinct
SelectExtender::escapeField public function Escapes a field name string. Overrides SelectInterface::escapeField
SelectExtender::escapeLike public function Escapes characters that work as wildcard characters in a LIKE pattern. Overrides SelectInterface::escapeLike
SelectExtender::exists public function Sets a condition that the specified subquery returns values. Overrides ConditionInterface::exists
SelectExtender::extend public function Enhance this object by wrapping it in an extender object. Overrides ExtendableInterface::extend
SelectExtender::fields public function Add multiple fields from the same table to be SELECTed. Overrides SelectInterface::fields
SelectExtender::forUpdate public function Add FOR UPDATE to the query. Overrides SelectInterface::forUpdate
SelectExtender::getArguments public function Compiles and returns an associative array of the arguments for this prepared statement. Overrides SelectInterface::getArguments
SelectExtender::getExpressions public function Returns a reference to the expressions array for this query. Overrides SelectInterface::getExpressions
SelectExtender::getFields public function Returns a reference to the fields array for this query. Overrides SelectInterface::getFields
SelectExtender::getGroupBy public function Returns a reference to the group-by array for this query. Overrides SelectInterface::getGroupBy
SelectExtender::getMetaData public function Retrieves a given piece of metadata. Overrides AlterableInterface::getMetaData
SelectExtender::getOrderBy public function Returns a reference to the order by array for this query. Overrides SelectInterface::getOrderBy
SelectExtender::getTables public function Returns a reference to the tables array for this query. Overrides SelectInterface::getTables
SelectExtender::getUnion public function Returns a reference to the union queries for this query. This include queries for UNION, UNION ALL, and UNION DISTINCT. Overrides SelectInterface::getUnion
SelectExtender::groupBy public function Groups the result set by the specified field. Overrides SelectInterface::groupBy
SelectExtender::hasAllTags public function Determines if a given query has all specified tags. Overrides AlterableInterface::hasAllTags
SelectExtender::hasAnyTag public function Determines if a given query has any specified tag. Overrides AlterableInterface::hasAnyTag
SelectExtender::hasTag public function Determines if a given query has a given tag. Overrides AlterableInterface::hasTag
SelectExtender::having public function Adds an arbitrary HAVING clause to the query. Overrides SelectInterface::having
SelectExtender::havingArguments public function Gets a list of all values to insert into the HAVING clause. Overrides SelectInterface::havingArguments
SelectExtender::havingCompile public function Compiles the HAVING clause for later retrieval. Overrides SelectInterface::havingCompile
SelectExtender::havingCondition public function Helper function to build most common HAVING conditional clauses. Overrides SelectInterface::havingCondition
SelectExtender::havingConditions public function Gets a list of all conditions in the HAVING clause. Overrides SelectInterface::havingConditions
SelectExtender::havingExists public function Sets a HAVING condition that the specified subquery returns values. Overrides SelectInterface::havingExists
SelectExtender::havingIsNotNull public function Sets a condition in the HAVING clause that the specified field be NOT NULL. Overrides SelectInterface::havingIsNotNull
SelectExtender::havingIsNull public function Sets a condition in the HAVING clause that the specified field be NULL. Overrides SelectInterface::havingIsNull
SelectExtender::havingNotExists public function Sets a HAVING condition that the specified subquery returns no values. Overrides SelectInterface::havingNotExists
SelectExtender::innerJoin public function Inner Join against another table in the database. Overrides SelectInterface::innerJoin
SelectExtender::isNotNull function Sets a condition that the specified field be NOT NULL. Overrides ConditionInterface::isNotNull
SelectExtender::isNull function Sets a condition that the specified field be NULL. Overrides ConditionInterface::isNull
SelectExtender::isPrepared public function Indicates if preExecute() has already been called on that object. Overrides SelectInterface::isPrepared
SelectExtender::join public function Default Join against another table in the database. Overrides SelectInterface::join
SelectExtender::leftJoin public function Left Outer Join against another table in the database. Overrides SelectInterface::leftJoin
SelectExtender::nextPlaceholder public function Returns the next placeholder ID for the query. Overrides PlaceholderInterface::nextPlaceholder
SelectExtender::notExists public function Sets a condition that the specified subquery returns no values. Overrides ConditionInterface::notExists
SelectExtender::orConditionGroup public function Creates a new group of conditions ORed together. Overrides ConditionInterface::orConditionGroup
SelectExtender::orderBy public function Orders the result set by a given field. Overrides SelectInterface::orderBy
SelectExtender::orderRandom public function Orders the result set by a random value. Overrides SelectInterface::orderRandom
SelectExtender::range public function Restricts a query to a given range in the result set. Overrides SelectInterface::range
SelectExtender::rightJoin public function Right Outer Join against another table in the database. Overrides SelectInterface::rightJoin
SelectExtender::union public function Add another Select query to UNION to this one. Overrides SelectInterface::union
SelectExtender::uniqueIdentifier public function Returns a unique identifier for this object. Overrides PlaceholderInterface::uniqueIdentifier
SelectExtender::where public function Adds an arbitrary WHERE clause to the query. Overrides ConditionInterface::where
SelectExtender::__call public function Magic override for undefined methods.
SelectExtender::__clone public function Clone magic method. Overrides SelectInterface::__clone
SelectExtender::__construct public function
SelectExtender::__toString public function Returns a string representation of how the query will be executed in SQL. Overrides SelectInterface::__toString
doc_Drupal
2016-10-29 09:40:50
Comments
Leave a Comment

Please login to continue.