O Postgres suporta os tipos de indexação B-tree, R-tree, Hash, GiST e GIN. A indexação de árvore B é a mais comum e se encaixa nos cenários mais comuns. Esta é a sintaxe:
CREATE INDEX idex_name ON table_name USING btree(column1, column2);
Aqui está o createindex documentação e aqui estão mais informações sobre os diferentes tipos de índice em postgres.
O tipo de índice que você deve usar depende dos tipos de operações que deseja executar. Se você simplesmente deseja verificação de igualdade, o índice de hash é o melhor. Para operações mais comuns (por exemplo, comparação, correspondência de padrões), a árvore B deve ser usada. Eu pessoalmente nunca usei a indexação GiST ou GIN. ALGUM guru por aí?
A documentação descreve todos esses tipos. Eles podem ajudá-lo melhor do que eu :)
Espero que isto ajude.