- Text Search >
- Text Search in the Aggregation Pipeline
Text Search in the Aggregation Pipeline¶
On this page
New in version 2.6.
In the aggregation pipeline, text search is available via the use of
the $text query operator in the $match stage.
Restrictions¶
For general $text operator restrictions, see operator
restrictions.
In addition, text search in the aggregation pipeline has the following restrictions:
- The
$matchstage that includes a$textmust be the first stage in the pipeline. - A
textoperator can only occur once in the stage. - The
textoperator expression cannot appear in$oror$notexpressions. - The text search, by default, does not return the matching documents
in order of matching scores. Use the
$metaaggregation expression in the$sortstage.
Text Score¶
The $text operator assigns a score to each document that
contains the search term in the indexed fields. The score represents
the relevance of a document to a given text search query. The score can
be part of a $sort pipeline specification as well as part of the
projection expression. The { $meta: "textScore" } expression
provides information on the processing of the $text operation.
See $meta aggregation for details on accessing the score for
projection or sort.
The metadata is only available after the $match stage that
includes the $text operation.
Examples¶
The following examples assume a collection articles that has a text
index on the field subject:
Calculate the Total Views for Articles that Contains a Word¶
The following aggregation searches for the term cake in the
$match stage and calculates the total views for the
matching documents in the $group stage.
Return Results Sorted by Text Search Score¶
To sort by the text search score, include a $meta
expression in the $sort stage. The following example
matches on either the term cake or tea, sorts by the
textScore in descending order, and returns only the title field
in the results set.
The specified metadata determines the sort order. For example, the
"textScore" metadata sorts in descending order. See
$meta for more information on metadata as well as an
example of overriding the default sort order of the metadata.
Match on Text Score¶
The "textScore" metadata is available for projections, sorts, and
conditions subsequent the $match stage that includes the
$text operation.
The following example matches on either the term cake or tea,
projects the title and the score fields, and then returns only
those documents with a score greater than 1.0.