What is more efficient: text (765) or varchar (765) to store a freeform searchable description?
As far as Postgres is concerned, there is no difference in performance. And there is no length modifier for text to begin with, just (optionally) for varchar.

Unless you need to enforce a certain length, just use text or varchar.


Would index lookup be noticeably faster with char vs varchar when all values are 36 chars


To support pattern matching with LIKE, I suggest a trigram index. Details:


How to create an index to speed up an aggregate LIKE query on an expression?


There is also full-text-search with its own set of operators, building on dictionaries. Here's an overview of pattern-matching options in Postgres:


Pattern matching with LIKE, SIMILAR TO or regular expressions in PostgreSQL