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
- class \Drupal\Core\Database\Query\SelectExtender implements SelectInterface
- class \Drupal\search\SearchQuery
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 |
Please login to continue.