"Contains" matches on partial words, e.g. if you select Keywords contains lon it will pick images with the keywords london, babylon, and alone. If you use multiple strings to match with, e.g. Keywords contains lon, lac then it would match images where any keyword contains a part of either string.
"Contains all" will match on multiple partial words, e.g. Keywords contains all lon, der would match images which contain both the keywords london AND wander and also jokulsarlon AND derby, or even one with the keyword 'londonderry' (a single keyword which contains both strings). An image would have to contain matches with BOTH strings to be selected.
"Contains the words" only matches on whole words. So you would need to use Keywords contains the words london to get matches with images containing the keyword london - i.e. the whole keyword has to be matched, not just part of it. As with "contains all", "contains the words" requires ALL the listed words to be present, not just any one of them.
To match on keywords containing spaces, use "Contains the words" and just enter the keyword (without quotes) as two separate words. Commas are used to separate individual keywords, so Contains the words london bridge would match on the two-word keyword london bridge but not london or bridge (or both) on their own as separate keywords.