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. |
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. |
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)
# indexElementAttributes()
Indexes the attributes of a given element defined by its element type.
View source (opens new window)
Arguments
$element
(craft\base\ElementInterface)$fieldHandles
(string (opens new window)[], null (opens new window)) – The field handles that should be indexed, ornull
if all fields should be indexed.
Returns
boolean (opens new window) – Whether the indexing was a success.
# 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
- 4.4.0
Normalizes a search
param into a craft\search\SearchQuery object.
View source (opens new window)
Arguments
$searchQuery
(string (opens new window), array (opens new window), craft\search\SearchQuery)
Returns
# searchElements()
- Since
- 3.7.14
Searches for elements that match the given element query.
View source (opens new window)
Arguments
$elementQuery
(craft\elements\db\ElementQuery) – The element query being executed
Returns
integer (opens new window)[] – The filtered list of element IDs.
# Events
# EVENT_AFTER_SEARCH
The event that is triggered after a search is performed.
Any modifications to craft\events\SearchEvent::$scores will be respected.
# EVENT_BEFORE_INDEX_KEYWORDS
- Type
- craft\events\IndexKeywordsEvent
- Since
- 4.2.0
The event that is triggered before keywords are indexed for an element attribute or field.
You may set craft\events\CancelableEvent::$isValid to false
to prevent the attribute/field’s keywords from being indexed.
# EVENT_BEFORE_SCORE_RESULTS
- Type
- craft\events\SearchEvent
- Since
- 4.3.0
The event that is triggered before the results are scored.
Any modifications to craft\events\SearchEvent::$results will be respected when results are scored.
Event handlers can set craft\events\SearchEvent::$scores to override the resulting element scores returned by searchElements().
# EVENT_BEFORE_SEARCH
The event that is triggered before a search is performed.