---
title: Term
---

Term queries look for exact token matches. A term query is like an exact string match, but at the
token level.

## Overview

Unlike [match](/v2/full-text/match) or [phrase](/v2/full-text/phrase) queries, term queries treat the query
string as a **finalized token**. This means that the query string is taken as-is, without any further tokenization, lowercasing,
stemming, etc.

Term queries use the `===` operator. To understand exactly how it works, let's consider the following two term queries:

```sql
-- Term query 1
SELECT description, rating, category
FROM mock_items
WHERE description === 'running';

-- Term query 2
SELECT description, rating, category
FROM mock_items
WHERE description === 'RUNNING';
```

The first query returns:

```csv
     description     | rating | category
---------------------+--------+----------
 Sleek running shoes |      5 | Footwear
(1 row)
```

However, the second query returns no results. This is because term queries look for exact matches, which includes
case sensitivity, and there are no documents in the example dataset containing the token `RUNNING`.

### How It Works

Under the hood, `===` simply finds all documents where any of their tokens are an exact string match against the query token.
A document's tokens are determined by the field's tokenizer and token filters, configured at index creation time.

### Examples

Let’s consider a few more hypothetical documents to see whether they would be returned by the term query.
These examples assume that index uses the default tokenizer and token filters, and that the term query is
`running`.

| Original Text       | Tokens                    | Match | Reason                                | Related                      |
| ------------------- | ------------------------- | ----- | ------------------------------------- | ---------------------------- |
| Sleek running shoes | `sleek` `running` `shoes` | ✅    | Contains the token `running`.         |
| Running shoes sleek | `sleek` `running` `shoes` | ✅    | Contains the token `running`.         |
| SLeeK RUNNING ShOeS | `sleek` `running` `shoes` | ✅    | Contains the token `running`.         | [Lowercasing](/v2/indexing)  |
| Sleek run shoe      | `sleek` `run` `shoe`      | ❌    | Does not contain the token `running`. | [Stemming](/v2/indexing)     |
| Sleke ruining shoez | `sleke` `ruining` `shoez` | ❌    | Does not contain the token `running`. | [Fuzzy](/v2/full-text/fuzzy) |
| White jogging shoes | `white` `jogging` `shoes` | ❌    | Does not contain the token `running`. |
