POSTGRES/FTS:如何匹配多个 tsvector?

问题描述 投票:0回答:0

需要使用全文搜索来查询“编程语言”数据库。

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');
postgresql full-text-search
© www.soinside.com 2019 - 2024. All rights reserved.