19. A computer-implemented method, comprising: obtaining a first plurality of messages for a first user, wherein the first plurality of messages comprises: one or more messages in each of a first plurality of formats; and one or more messages sent or received via each of a first plurality of protocols; creating one or more associations between one or more of the first plurality of messages, wherein creating one or more associations between one or more of the first plurality of messages further comprises: performing a semantic analysis on the first plurality of messages; and creating one or more clusters of messages from the first plurality of messages based, at least in part, on the semantic analysis, wherein a cluster of messages comprises two or more messages that are associated together; receiving a query from the first user requesting at least one message from the first plurality of messages; generating one or more index search terms based, at least in part, on the received query; and generating a result set of messages in response to the generated one or more index search terms, wherein the result set is based, at least in part, on one or more index search parameters for one or more of the generated one or more index search terms, and wherein at least one of the one or more index search parameters is determined individually for the first user.
20. The method of claim 19 , wherein at least one of the one or more index search parameters is based, at least in part, on historic patterns of communications of the first user.