title: Indexing strategy for full text search in a multi-tenant PostgreSQL database
body: <p>I have a PostgreSQL database that stores a contact information table (first, last names) for multiple user accounts. Each contact row has a user id column. What would be the most performant way to set up indexes so that users could search for the <em>first</em> few letters of the first or last name of their contacts? </p>
  
  <p>I'm aware of conventional b-tree indexing and PG-specific GIN and GiST, but I'm just not sure how they could (or could not) work together such that a user with just a few contacts doesn't have to search all of the contacts before filtering by user_id. </p>