1. A method for improving searches of tagged entities based upon usage patterns comprising: detecting, via computer program instructions stored in at least one storage medium that are executable by at least one processor, a tagging event where a user manually enters a tag for a software entity responsive to a user interaction; automatically determining, via computer program instructions stored in at least one storage medium that are executable by at least one processor, at least one situational attribute relating to the tagging event where said automatically determined situation attribute relates to a state of a computer or browser at the time of the user interaction, wherein said situation attribute comprises a time, a date, a location of the user interaction, a program used for tagging, and type of content being tagged, wherein the situation attribute is determined without manual user input needed to enter values for the situation attribute; storing, via computer program instructions stored in at least one storage medium that are executable by at least one processor, the at least one situational attribute in a data repository so that the stored situational attribute is associated with the tag; repeating, via computer program instructions stored in at least one storage medium that are executable by at least one processor, the detecting, determining, and storing for a plurality of different tags, each associated with a software entity; receiving, via computer program instructions stored in at least one storage medium that are executable by at least one processor, a request for performing a search; receiving, via computer program instructions stored in at least one storage medium that are executable by at least one processor, a tag keyword for performing a search; suggesting, via computer program instructions stored in at least one storage medium that are executable by at least one processor, at least one of an additional tag keyword and the situational attribute based on search patterns of the user; receiving, via computer program instructions stored in at least one storage medium that are executable by at least one processor, a term comprising the at least one selected additional tag keyword and the attribute; conducting, via computer program instructions stored in at least one storage medium that are executable by at least one processor, a search of tagged software entities using the tag keyword and the term that are matched against previously stored tag values to produce search results; and automatically determining a search-time attribute existing at a time the search is conducted, wherein the search-time attribute corresponds to the situational attribute, wherein said search-time attribute comprises a time, a date, and a location of the user interaction, wherein the search-time attribute is determined without manual user input needed to enter values for the search-time attribute, wherein the search results are modified based at least in part upon a correspondence between the stored situational attribute of the tagged software entities and the search-time attribute of the search.