Does PostgreSQL support wildcard indexes on JSON?
This won't work. In particular, you cannot create a single index that will support conditions like
WHERE (user_properties -&gt;&gt; 'some random property')::date &gt;= '2000-01-01'::date

for arbitrary attributes.
You will have to identify the properties you want to use in comparisons and create specialized indexes on these properties. In the above sample, that would be:
CREATE INDEX ON mytable (((user_properties -&gt;&gt; 'some random property')::date));

It would be better to extract such columns from the JSON and have them be regular table columns.