You could you edismax bq, if you are using edismax (or maybe bf). For this to work, you obviously need to store the info (in a db, redis, whatever you fancy):
- searched "garden chair":
- clicked "hamac for garden": 10
- clicked "green garden chair": 4
- searched "green table":
- ...
And so forth, look this up when there is a search, and if there is info available for the search, send the bq boosting what you want.
Also, check out the QueryElevationComponent It might your purpose (although is stronger than just boosting....). There are two things to consider though:
- Every time you change the click number you would need to modify the xml and reload, so it would be better if you could batch it to nightly or something like that.
- there was a recent jira issue to allow you to provide similar functionality but by providing request params, no need of xml/reload, so check that out too