I've written a global to display a tag cloud based on the top x number of queries in the search log table, from the last y number of days. It's working pretty well and I am reasonably happy with it
.
One of the problems with using the search log table is that the counts become less meaningful the older the database is. Terms that may be popular on a short term basis e.g. 'Christmas', are not given the weighting they deserve in the tag cloud because the slog_count for consistently popular queries distorts the data. It would actually be easier to build a tag cloud if the terms weren't automatically grouped by the script i.e. if the log recorded each term and date separately.
I'm trying to work out some solutions to this, including resetting the slog_count column to zero either daily or weekly, or adding another column to track the weekly or daily counts on a rolling basis. Any other ideas or comments are welcome!

One of the problems with using the search log table is that the counts become less meaningful the older the database is. Terms that may be popular on a short term basis e.g. 'Christmas', are not given the weighting they deserve in the tag cloud because the slog_count for consistently popular queries distorts the data. It would actually be easier to build a tag cloud if the terms weren't automatically grouped by the script i.e. if the log recorded each term and date separately.
I'm trying to work out some solutions to this, including resetting the slog_count column to zero either daily or weekly, or adding another column to track the weekly or daily counts on a rolling basis. Any other ideas or comments are welcome!