Multi-word search, similar to Amazon's search function

Hi All,

Working on a search change and would like to know if there is a way of creating the functionality seen here on Amazon for multi-word searches.

For example, if I search for grey tall cabinet, Amazon will return a few selections.
It will show me grey tall cabinet with tall crossed out and show me the first set of results.
It will then show me grey tall cabinet with grey crossed out and show me the first set of results.

Basically if a user searches for multiple words and these words as a phrase are found, then you only want these to show. If a user searches for multiple words and no results are found, then you want to show the different combinations of some words based on best fit.

I have tried to use ES suggester for this, but it doesn't quite work the way I am describing, as it seems to be better to alternative words.

Any suggestions?

Your help is greatly appreciated,

Regards,
Dev

You can do it but you need to build something external to ES to build the variations of the original query and then submit those to ES.