When building a query, how many keywords is enough and what number is too many?
what - many (number), buffalowhere - North Americawhen - today
Part of the problem with a word like buffalo is that it has more than one meaning. You only had one meaning in mind but the search engine doesn' t know that because it looks for literal matches. This is where I usually introduce the 1 in 5 rule (although it's more of a phenomenon of language than it is a rule). On average, there are five terms that may be used for the concept you have in mind. You say buffalo, others say bison. There are probably only a couple more (ungulate anyone?), but in some cases there could be many more alternate terms (this happens especially with verbs).
I've had a lot of success searching for two or three concepts in my career. It requires keeping important concepts in mind that aren't really needed in the query--such as today in the buffalo example. Scanning the results, I look for current data, not information from the 1800's.
Sure, you can use queries containing more than three concepts, but unless you have a good idea what words an expert used, you're pushing your luck. Probability is against you. You're better off keeping your query simple.