21. A computer-implemented method, comprising: obtaining a first plurality of unencrypted documents, wherein each document in the first plurality of unencrypted documents comprises: a Small Index of tags based, at least in part, on a content of the respective document; and a Large Index of tags based, at least in part, on a predictive analysis of the tags in the Small Index of the respective document; obtaining a second encrypted document, wherein the second encrypted document comprises a Small Index of tags based, at least in part, on a content of the second encrypted document; creating one or more associations between the second encrypted document and one or more documents of the first plurality of unencrypted documents based, at least in part, on the Small Index of tags of the second encrypted document and the respective Small Index of tags of the one or more of the first plurality of unencrypted documents; generating a Large Index of tags for the second encrypted document based, at least in part, on a predictive analysis of the tags in the Small Index of tags of the second encrypted document; augmenting the Large Index of tags for the second encrypted document based, at least in part, on the respective Large Index of tags for the one or more associated documents of the first plurality of unencrypted documents; receiving a query from a first user, wherein the query matches at least one tag in the augmented Large Index of tags for the second encrypted document; and generating a result set of documents in response to the received query, wherein the result set comprises the second encrypted document.
21. A computer-implemented method, comprising: obtaining a first plurality of unencrypted documents, wherein each document in the first plurality of unencrypted documents comprises: a Small Index of tags based, at least in part, on a content of the respective document; and a Large Index of tags based, at least in part, on a predictive analysis of the tags in the Small Index of the respective document; obtaining a second encrypted document, wherein the second encrypted document comprises a Small Index of tags based, at least in part, on a content of the second encrypted document; creating one or more associations between the second encrypted document and one or more documents of the first plurality of unencrypted documents based, at least in part, on the Small Index of tags of the second encrypted document and the respective Small Index of tags of the one or more of the first plurality of unencrypted documents; generating a Large Index of tags for the second encrypted document based, at least in part, on a predictive analysis of the tags in the Small Index of tags of the second encrypted document; augmenting the Large Index of tags for the second encrypted document based, at least in part, on the respective Large Index of tags for the one or more associated documents of the first plurality of unencrypted documents; receiving a query from a first user, wherein the query matches at least one tag in the augmented Large Index of tags for the second encrypted document; and generating a result set of documents in response to the received query, wherein the result set comprises the second encrypted document. 25. The method of claim 21 , further comprising: augmenting the Small Index of tags for the second encrypted document based, at least in part, on the respective Small Index of tags for the one or more associated documents of the first plurality of unencrypted documents.