"Dan Langille" <dan@xxxxxxxxxxxx> writes: > pkgmessage_textsearchable2 | tsvector | | | generated always as (to_tsvector('english'::regconfig, translate(pkgmessage, '/'::text, ' '::text))) stored That is not likely to play well with this: > freshports.org=> show default_text_search_config ; > default_text_search_config > ---------------------------- > pg_catalog.simple because "english" and "simple" will stem words differently. regression=# select websearch_to_tsquery('english', 'example'); websearch_to_tsquery ---------------------- 'exampl' (1 row) regression=# select websearch_to_tsquery('simple', 'example'); websearch_to_tsquery ---------------------- 'example' (1 row) If what is in your tsvector is 'exampl', then only the first of these will match. So IMO the question is not "why is it failing on prod?", it's "how the heck did it work on the other machine?". You won't get nice results if websearch_to_tsquery is using a different TS configuration than to_tsvector did. regards, tom lane