需要使用全文搜索来查询“编程语言”数据库。
Table "public.ProgrammingLanguages"
Column | Type | Collation | Nullable | Default
-------------+----------+-----------+----------+------------------------------------------------------------------------------------------------------------------
lang | text | | not null |
lang_search | tsvector | | | generated always as (setweight(to_tsvector('english'::regconfig, COALESCE(lang, ''::text)), 'A'::"char")) stored
Indexes:
"ProgrammingLanguages_pkey" PRIMARY KEY, btree (lang)
不幸的是,如果输入是“java”(匹配编程语言 java),这只匹配一行,如果输入是“javasc”,则不匹配。
我需要的是将“javasc”甚至“jav”匹配到“javascript”。
如何解决这个问题?
我使用了这个查询:
SELECT lang, ts_rank("lang_search", websearch_to_tsquery('javasc')) as rank
FROM "ProgrammingLanguages"
WHERE "lang_search" @@ websearch_to_tsquery('javasc');