14. The method of claim 12 , wherein there is no character overlap between shingles generated from the plaintext query.
12. A method, comprising: obtaining, by a processor, a plurality of artifacts in plaintext form; generating, by the processor, fingerprints for each of the plurality of artifacts by generating shingles from text within each of the plurality of artifacts so that there at least one character overlap between adjacent shingles; and cryptographically hashing the shingles to generate a plurality of artifact fingerprints; storing the artifact fingerprints in a database; receiving, by the processor, a plurality of query fingerprints, each of which is generated by cryptographically hashing shingles of a plaintext query, wherein a character overlap between shingles generated from the plaintext query is less than the at least one character overlap of the shingles generated from the artifacts; determining, by the processor, whether any of the plurality of query fingerprints matches any of the artifact fingerprints stored in the database by performing a cosine distance calculation; and outputting an indication of an artifact containing a matched fingerprint.