To build a TagCloud that works with enterprise keywords instead of social tags, the steps are the following:
- disable social tagging, to avoid confusion of tags;
- in the document libraries you want to tag, in the list settings, click the two check-boxes to enable enterprise keywords and to promote enterprise keywords tags to social tags;
- schedule, and run, the job called "User Profile Service Application - Social Data Maintenance Job", so that social-promoted tags are crawled and indexed by the Managed Metadata Service;
- eventually, at development time do a full crawl to index the data at the previous step by the search service;
- build a new TagCloud web-part, deriving from the existing one, and override the method GetTagCloudItemFromSocialTerm, so that it returns a correct href, pointing to the search page where you filter by the desired tag;
important: in the constructor, remember to disable async updates, otherwise the derived method isn't called!
- configure the web-part to show tags from all users.