Postgres поддържа типове индексиране B-tree, R-tree, Hash, GiST и GIN. Индексирането на B-дърво е най-често срещаното и отговаря на най-често срещаните сценарии. Това е синтаксисът:
CREATE INDEX idex_name ON table_name USING btree(column1, column2);
Ето createindex документация и тук има повече информация за различни типове индекси в postgres.
Какъв тип индекс трябва да използвате зависи от типа операции, които искате да извършите. Ако просто искате проверка на равенството, тогава хеш индексът е най-добрият. За най-често срещаните операции (напр. сравнение, съпоставяне на образец) трябва да се използва B-дърво. Аз лично никога не съм използвал GiST или GIN индексиране. НЯКОЙ гуру там?
Документацията описва всички тези видове. Те могат да ви помогнат по-добре от мен :)
Надявам се това да помогне.