I have this tsvector column for full-text search of two columns' name and address.
ALTER TABLE public.business_info ADD column search_vector tsvector NULL GENERATED ALWAYS AS (setweight(to_tsvector('simple'::regconfig, COALESCE(name, ''::text)), 'A'::"char") || setweight(to_tsvector('simple'::regconfig, COALESCE(address, ''::text)), 'B'::"char")) STORED
I am trying the below query to find records with full text wild card search
SELECT name,ts_rank_cd(search_vector, to_tsquery('Oklahoma&State:*')) as rank
from business_info order by rank desc
But I am getting the result as below though I am expecting, records with the name "Oklahoma state" show a higher ranking. Any idea how to rank these results to get the results with a higher ranking on the inputs that the user has given?

If you are interested on higher score in the starting positions of the string, simple define an expression for this part.
Here an example for the first two words
Than define a higher weight for this prefix e.g.
Resut is as expected