Is there ANY compression type that can compress a file, and then that compressed file can be searched without uncompressing the file?
Compressed self-indexes such as the FM Index allow arbitrary substring searches in near entropy-compressed space. These are essentially compressed suffix arrays or suffix trees, which have a lot of literature.
Basic substring search can be o(k) or o(k log n) in time for length k, depending on what data structures are chosen (different types of rank/select data structures). There are a range of issues that arise depending on whether one wants simple boolean containment predicates, the offset of each occurrence, or more complicated suffix tree operations; the former can be done in less space and time than the latter.
There's also an entire book about searching and selective decompression of strings: "Compressed Data Structures for Strings: On Searching and Extracting Strings" by Rossano Venturini, published 2014 Springer Science & Business Media.
BWT-based indexes are self-indexing, in the sense that the index is also a compressed representation of the source string, and can be decompressed into the original file. The decompression can be performed more quickly by adding a select index along with the rank index. Rank/select indexes are an interesting topic, and are worth checking out. There are some excellent resources for practical implementations.
However, the main point that I want to bring up is this is a special case of the more general idea of compressed data structures. A compressed data structure is one that doesn't need to be decompressed (or the amount of decompression required is bounded) in order to perform efficient operations on it.
Compressed data structures can be further analysed in terms of their overhead relative to a theoretical limit. For example, succinct data structures have a relative overhead which decreases as the data structure grows. This is a very active research area at the moment.
The BWT technique can be applied to data structures other than strings. For example, the same idea has been extended to labelled trees, resulting in a compressed searchable representation.
So if you have data that you need to compress and find stuff in, don't necessarily think in terms of files. Your data may have a higher-level structure that you can exploit.