Neo4j free text search combined with relation query

In this particular case full text search won't be a help performance-wise, as this would select all reviews containing 'great acting' (of which there are likely a great, great many) and then you would need to filter to those belonging to the user in question.

This is far less performant than matching to the reviews of the user in question (of which there should be comparatively far far fewer) and then filtering those for the word 'great acting'.

You can use the CONTAINS keyword in your WHERE clause to ensure the property contains the given substring, as in Raj's answer (though this is case sensitive):

MATCH (:User{ id: 123 })->[:Wrote]->(review:Review)->[:Reviewing]->(:Movie) 
WHERE review.text CONTAINS 'great acting'
...

You can also create an index on this, though it's far more efficient if it doesn't get used for lookup here and instead starts with the user node (you can EXPLAIN the query to determine what indexes are used to find the starting node(s)).

If you need case insensitive searching of keywords, you can use the =~ regex operator for this, though this is not index-backed. For example:

MATCH (:User{ id: 123 })->[:Wrote]->(review:Review)->[:Reviewing]->(:Movie) 
WHERE review.text =~ '(?i).*great acting.*'
...