We are exploring the use of synonyms to help our search results, but it raises the question of what users are entering for their search. To my knowledge, I've not seen a preset report for this and nothing ACS AEM Commons - this is for an Assets (Author) only implementation.
If I were to attempt this I would probably start by trying to inject Analytics code (by way of Launch) into the ClientLibrary used for Search. This custom JS would send the searched terms to Adobe Analytics (or whatever web analytics system you have) which would hopefully provide you very easy reporting.
If the only place to store this data is in AEM Author, then I might explore a Sling Filter that quickly accepts requests that match a search, and also quickly saves the relevant data into AEM - depending on the latency of the Save operation to the JCR, you may want to spawn a Job or Event (as its likely its OK if a few search trackings are lost -- you'd want to look at this data in aggregate). Of course, once the data is in the JCR, you'd need some way to get it out to review, as well as a clean-up job so you don't amass tons of old junk data overtime. (this is why i like leveraging analytics for this, all this slicing and dicing and reporting is built into those products)