Search

Type
Class
Namespace
craft\services
Inherits
craft\services\Search » yii\base\Component (opens new window) » yii\base\BaseObject (opens new window)
Implements
yii\base\Configurable (opens new window)
Since
3.0.0

Search service.

An instance of the service is available via Craft::$app->search.

View source (opens new window)

# Public Properties

Property Description
behaviors (opens new window) yii\base\Behavior (opens new window) – List of behaviors attached to this component.
maxPostgresKeywordLength integer (opens new window) – Because the keywords column in the search index table is a B-TREE index on Postgres, you can get an "index row size exceeds maximum for index" error with a lot of data.
minFullTextWordLength integer (opens new window), null (opens new window) – The minimum word length that keywords must be in order to use a full-text search (MySQL only).
useFullText boolean (opens new window) – Whether fulltext searches should be used ever.

# maxPostgresKeywordLength

Type
integer (opens new window)
Default value
2450

Because the keywords column in the search index table is a B-TREE index on Postgres, you can get an "index row size exceeds maximum for index" error with a lot of data. This value is a hard limit to truncate search index data for a single row in Postgres.

View source (opens new window)

# minFullTextWordLength

Type
integer (opens new window), null (opens new window)
Default value
null

The minimum word length that keywords must be in order to use a full-text search (MySQL only).

View source (opens new window)

# useFullText

Type
boolean (opens new window)
Default value
true
Since
3.4.10

Whether fulltext searches should be used ever. (MySQL only.)

View source (opens new window)

# Public Methods

Method Description
__call() (opens new window) Calls the named method which is not a class method.
__clone() (opens new window) This method is called after the object is created by cloning an existing one.
__construct() (opens new window) Constructor.
__get() (opens new window) Returns the value of a component property.
__isset() (opens new window) Checks if a property is set, i.e. defined and not null.
__set() (opens new window) Sets the value of a component property.
__unset() (opens new window) Sets a component property to be null.
attachBehavior() (opens new window) Attaches a behavior to this component.
attachBehaviors() (opens new window) Attaches a list of behaviors to the component.
behaviors() (opens new window) Returns a list of behaviors that this component should behave as.
canGetProperty() (opens new window) Returns a value indicating whether a property can be read.
canSetProperty() (opens new window) Returns a value indicating whether a property can be set.
className() (opens new window) Returns the fully qualified name of this class.
deleteOrphanedIndexes() Deletes any search indexes that belong to elements that don’t exist anymore.
detachBehavior() (opens new window) Detaches a behavior from the component.
detachBehaviors() (opens new window) Detaches all behaviors from the component.
ensureBehaviors() (opens new window) Makes sure that the behaviors declared in behaviors() (opens new window) are attached to this component.
filterElementIdsByQuery() Filters a list of element IDs by a given search query.
getBehavior() (opens new window) Returns the named behavior object.
getBehaviors() (opens new window) Returns all behaviors attached to this component.
hasEventHandlers() (opens new window) Returns a value indicating whether there is any handler attached to the named event.
hasMethod() (opens new window) Returns a value indicating whether a method is defined.
hasProperty() (opens new window) Returns a value indicating whether a property is defined for this component.
indexElementAttributes() Indexes the attributes of a given element defined by its element type.
indexElementFields() Indexes the field values for a given element and site.
init() Initializes the object.
normalizeSearchQuery() Normalizes a search param into a craft\search\SearchQuery object.
off() (opens new window) Detaches an existing event handler from this component.
on() (opens new window) Attaches an event handler to an event.
searchElements() Searches for elements that match the given element query.
trigger() (opens new window) Triggers an event.

# deleteOrphanedIndexes()

Since
3.2.10

Deletes any search indexes that belong to elements that don’t exist anymore.

View source (opens new window)

# filterElementIdsByQuery()

DEPRECATED

Deprecated in 3.7.14. Use searchElements() instead.

Filters a list of element IDs by a given search query.

View source (opens new window)

Arguments

Returns

array (opens new window) – The filtered list of element IDs.

# indexElementAttributes()

Indexes the attributes of a given element defined by its element type.

View source (opens new window)

Arguments

Returns

boolean (opens new window) – Whether the indexing was a success.

Throws

# indexElementFields()

DEPRECATED

Deprecated in 3.4.0. Use indexElementAttributes() instead.

Indexes the field values for a given element and site.

View source (opens new window)

Arguments

Returns

boolean (opens new window) – Whether the indexing was a success.

Throws

# init()

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

View source (opens new window)

# normalizeSearchQuery()

Since
3.8.0

Normalizes a search param into a craft\search\SearchQuery object.

View source (opens new window)

Arguments

Returns

craft\search\SearchQuery

# searchElements()

Since
3.7.14

Searches for elements that match the given element query.

View source (opens new window)

Arguments

Returns

array (opens new window) – The filtered list of element IDs.

# Events

Type
craft\events\SearchEvent

The event that is triggered after a search is performed.

Type
craft\events\SearchEvent

The event that is triggered before a search is performed.