Phrase queries work exactly like match conjunction, but are more strict in that they require the order and position of tokens to be the same.
Phrase queries require that the field is indexed with a record of position.

Overview

Suppose our query is running shoes, and we want to omit results like running sleek shoes or shoes running — these results contain the right tokens, but not in the exact order and position that the query specifies. Enter the ### phrase operator:
INSERT INTO mock_items (description, rating, category) VALUES
('running sleek shoes', 5, 'Footwear'),
('shoes running', 5, 'Footwear');

SELECT description, rating, category
FROM mock_items
WHERE description ### 'running shoes';
This query returns:
     description     | rating | category
---------------------+--------+----------
 Sleek running shoes |      5 | Footwear
(1 row)
Note that running sleek shoes and shoes running did not match the phrase running shoes despite having the tokens running and shoes because they appear in the wrong order or with other words in between.

Examples

Let’s consider a few more hypothetical documents to see whether they would be returned by the phrase query. These examples assume that index uses the default tokenizer and token filters, and that the query is running shoes.
Original TextTokensMatchReasonRelated
Sleek running shoessleek running shoesContains running and shoes, in that order.
Running shoes sleeksleek running shoesrunning and shoes not in the right order.Match conjunction
SLeeK RUNNING ShOeSsleek running shoesContains running and shoes, in that order.Lowercasing
Sleek run shoesleek run shoeDoes not contain both running and shoes.Stemming
Sleke ruining shoezsleke ruining shoezDoes not contain both running and shoes.
White jogging shoeswhite jogging shoesDoes not contain both running and shoes.

Slop

Slop allows phrase queries to be relaxed a bit. It specifies how many changes — like extra words in between or swapped word positions — are allowed while still considering the phrase a match. For example, searching for sleek shoes with a slop of 1 would match sleek running shoes because there is one word, running, between sleek and shoes. Slop has not yet been implemented in v2. Please continue to use v1 for this capability.