Hash indexes are "the right way" to speed-up index lookups.
They aren't used in Postgres because their implementation there has many problems. One of them is that they are slower than the theoretically suboptimal B-trees. In the process of fixing those problems, people will compare both indexes many times.
Tuning/optimization starts with using the right schema.