Anyone who is into Elasticsearch should spend some time reading all of the articles on Found's blog. Some really great stuff that covers ES better than most of the actual ES official docs.
Lucene-based search (i.e. Elasticsearch, CloudSearch, etc.) strikes me as overly complex from a dev's perspective. The indexing and search processes don't seem to have enough sensible defaults and that's to speak nothing of cluster configuration and management, memory issues, etc.
In general, there's too much of a requirement to understand Lucene's implementation details in order to use it effectively, and I'm just not sure why the process of building a search feature needs to be so difficult.
Good search is difficult! But, as there are more and more users, more and more information and documentation is available. And over time the documentation will also get better.
I learned a lot from this article, in just a few minutes I improved my searches to be more precise. And that's kinda cool for me who has absolutely no knowledge about Lucene :)
This sounds like the same principles as normal (relational) database query optimization. Filter as much as you can early to avoid unneeded calculations later.