- Text Search >
- Text Search Operators
Text Search Operators¶
On this page
Note
Views do not support text search.
Query Framework¶
Use the $text
query operator to perform text searches on a
collection with a text index.
$text
will tokenize the search string using whitespace and most
punctuation as delimiters, and perform a logical OR
of all such
tokens in the search string.
For example, you could use the following query to find all stores containing any terms from the list “coffee”, “shop”, and “java”:
db.stores.find( { $text: { $search: "java coffee shop" } } )
Use the $meta
query operator to obtain and sort by the
relevance score of each matching document. For example, to order a
list of coffee shops in order of relevance, run the following:
db.stores.find(
{ $text: { $search: "coffee shop cake" } },
{ score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )
For more information on the $text
and $meta
operators, including restrictions and behavior, see:
$text Reference Page
- $text Query Examples
$meta
projection operator
Aggregation Framework¶
When working with the Aggregation framework, use
$match
with a $text
expression to execute a text
search query. To sort the results in order of relevance score,use the
$meta
aggregation operator in the $sort
stage [1].
For more information and examples of text search in the Aggregation framework, see Text Search in the Aggregation Pipeline.
[1] | The behavior and requirements of the $meta projection
operator differ from that of the $meta aggregation
operator. For details on the $meta aggregation operator,
see the $meta aggregation operator reference page. |