If I understand you correctly, you want your predicate to be true whenever any keywords name matches the search string. For this you need to test with the ANY keyword like this:
[NSPredicate predicateWithFormat:@"ANY keywords.name CONTAINS[c] %@", ...];
This will search the keywords and return true if any of those keywords name contains your search string.