I don't know if it was done already but it should be possible to make a compression format that also aids in searching the archive in a bloomfilter-ish kind of way.
Then get 4 goals: compression ratio, compression speed, decompression speed and search (which could be split further)
As pointed out: it's done, look for algorithmics over grammar-based compression. Querying and search is one of the operation that is doable on compressed data.
Implementation-wise, you probably loose on the first goal, gain on the second and third (simpler, faster implementations), if you make the fourth one easy to implement.
Then get 4 goals: compression ratio, compression speed, decompression speed and search (which could be split further)