1. An apparatus comprising: hashing circuitry to identify multiple locations in one or more history buffers for searching for a target data in an input data stream; a plurality of match engines to perform multiple searches in parallel for the target data in the one or more history buffers; pipeline circuitry to pipeline searches for multiple sequential target data in the input data stream in consecutive clock cycles; and a match selector to select a result from the multiple searches and pipelined searches to compress the input data stream.