1. A method performed on at least one computer processor, said method comprising: receiving a first document comprising tags and words; creating a storage document comprising term identifiers by a first method comprising: for each of said tags, determining a term for a tag, and determining a term identification by performing a hash on said term, replacing said tag with said term identifier in said storage document; for each of said words, determining a term identifier for said word and replacing said word with said term identifier in said storage document; storing said storage document; creating a plurality of search matrices from said storage document, at least one of said plurality of search matrices being an individual term search matrix; gathering a plurality of said individual term search matrices together into a consolidated term search matrix, each of said plurality of said individual term search matrices having been created from a different document; receiving a search request comprising a first tag; performing a hash on said first tag to create a first tag identifier; searching for said first tag identifier as a term in said consolidated term search matrix to identify said first document; and presenting said first document as a search result.
2. The method of claim 1 further comprising: identifying a plurality of ngrams in said first document; and storing said ngrams in said storage document.