Now, the requirement is if user provides filter information based on every column from the web UI, this filter will let the user construct the “where clause” and provide to postgresql.
In a month this table exceeds millions of record. If I use the user-constructed query then it would take lot of time as the user may not include indexed column in the user-constructed query.
The first solution that comes to mind is to construct a document containing the relevant information, index that, and then provide a single search input field that is used to construct a text search query that you apply against the indexed document.
In short, forget the fact that there are fields and just index and search the content.
Add additional controls to the UI for just those fields that are indexed.