How to do AND search

Assuming a user searches for
"red shirts for men" and there are no results for
color:red product:shirt and gender:men

It should show no results. Where as it shows results for
color:red product:shirt

How to solve this issue?

I cant add to all keywords as user might add some other words as well

You would have to do some expansion to the user's query before passing it along to App Search.

If the users typed: "red shirts for men" you could expand it to use Lucene query syntax, so something like:
"red AND shirts AND men".

However, I wouldn't necessarily recommend doing that. I would recommend just showing all results, and providing facets for a user to refine / filter their search results by color, product, and gender, etc.