Full-Text Search in Neo4j
Create and query full-text indexes for case-insensitive search
In this 40-minute lab, you will learn
Searching text in a database sounds straightforward until you try it. Exact property lookups work when you know the precise value, but users rarely search that way. They type partial words, misspell names, and expect results regardless of capitalization.
In this lab, you will create full-text indexes in Neo4j and query them using Lucene syntax. By the end, you will have built a movie search feature that finds films by title and description, handles fuzzy and wildcard queries, and enriches the results with cast and genre information from the graph.
You will work with the movies dataset —a graph of movies, actors, and directors connected by ACTED_IN and DIRECTED relationships.
Full-text indexes
Create full-text indexes on node properties for efficient text search.
Search operators
Use wildcards, fuzzy matching, and boolean operators to find results.
Relevance scoring
Understand what the relevance score means and use it to filter and rank search results.
Posts from the GraphAcademy blog.
TIL: Cypher has a format() function for dates and times
A deprecation warning taught me that Cypher now formats dates, times, and durations natively. No APOC required.
Replacing your APOC Periodic Iterate with CALL {} IN TRANSACTIONS
apoc.periodic.iterate is deprecated in Cypher 25. Learn how to rewrite your queries with CALL {} IN TRANSACTIONS.
How Cypher Graph Types Kept Our AI-Generated Queries Honest During a Migration
We rebuilt GraphAcademy against the same Neo4j database. Graph types made sure AI-generated Cypher could not drift from the data model.