Build with Sanity MCP in Replit. Prizes up for grabs! Submit by June 14

How to implement user search query in custom Sanity movie app?

26 repliesLast updated: Nov 29, 2025

Is it possible to make a search query entered by the User, in my custom movie based app (not the one used as a template) ?
AI Update

Absolutely! You can implement user search functionality in your custom movie app using Sanity. Here's how to approach it:

Basic Approach

You'll want to use the Sanity Client to query your content based on user input. First, install it:

npm install @sanity/client

Then set up a client instance in your app:

import {createClient} from '@sanity/client'

const client = createClient({
  projectId: 'your-project-id',
  dataset: 'production',
  apiVersion: '2024-01-01',
  useCdn: true, // for faster cached responses
})

Implementing Search with GROQ

For text-based searches, you'll use GROQ's match operator, which performs full-text search with tokenization. Here's an example for searching movies:

async function searchMovies(searchTerm) {
  const query = `*[_type == "movie" && (
    title match $searchTerm ||
    overview match $searchTerm ||
    cast[].name match $searchTerm
  )]`
  
  return await client.fetch(query, { searchTerm })
}

Adding Relevance Scoring

To rank your search results by relevance, use the score() function to weight different fields:

const query = `*[_type == "movie" && (
  title match $searchTerm ||
  overview match $searchTerm
)] | score(
  boost(title match $searchTerm, 3),
  boost(overview match $searchTerm, 1)
) | order(_score desc)`

const results = await client.fetch(query, { searchTerm: userInput })

This gives title matches 3x more weight than overview matches, ensuring more relevant results appear first.

Important Notes

The combination of the Sanity Client, GROQ's match operator, and the score() function gives you a powerful, flexible search implementation that's perfect for a movie app!

Show original thread
26 replies

Was this answer helpful?

Sanity – Build the way you think, not the way your CMS thinks

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.

Related contributions