
Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag storeYes, the match operator in GROQ is case-insensitive. So *[text match "word"] and *[text match "wORd"] will return the same results.
This is confirmed in a Sanity community answer where a Sanity team member explicitly states that the match operator is not case-sensitive.
The match operator is designed for full-text search and uses tokenization to break down text into searchable terms. When you use match, both your search term and the field being searched are tokenized and compared in a case-insensitive manner. This makes it ideal for human-language text searches where you want to find content regardless of capitalization.
If you need case-sensitive matching, you should use different approaches:
==string::startsWith() which is case-sensitivein operator or string functions// Case-insensitive (all return same results)
*[title match "Demo"]
*[title match "demo"]
*[title match "DEMO"]
// Case-sensitive alternatives
*[title == "Demo"] // Only matches exact case
*[lower(title) == "demo"] // Normalize to lowercase firstThe case-insensitivity of match makes it particularly useful for search features where users might type queries in any combination of upper and lowercase letters.
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.
Content operations
Content backend


The only platform powering content operations
By Industry


Tecovas strengthens their customer connections
Build and Share

Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag store