There are really good log indexers that are a bit bigger than command line tool level. Commercially, splunk is the big one and hard to beat. Graylog2 is a nice open source implementation. Elasticsearch+Logstash are quite good too.
There is a fair bit of overhead to both setting them up to collect and running the collection server but once you have central log collection as a part of your system, they're great. Querying and reporting logs from multiple sources is the biggest benefit for multi tiered apps.
As for command line, if you can plug your logging into syslog, the systemd journald implementation allows for indexing on a number of fields as items are logged. Not sure if that would be useful in text processing though, more for the metadata.
Not sure about any ad hoc command line tools, they would still have an extract/load/parse time penalty each time you load the file.
That being said,
less does most of what I need in a single log file.
&pattern grep pattern
/pattern search forward
?pattern search backward
shift-f tail -f
tail mode can take the previous pattern into consideration as well which is great for watching live logs