我正在尝试使用 Postgres 创建一个基于三元词的搜索。这个想法是实现一个简单化的did you mean
.
我想要一张带有三字词而不是字符串的表格。我确实知道 Postgres 为字符串(pg_tgrm)提供了三元组,但我想做到这一点:
` roses beautiful red colar sun`
三字词:
[`roses beautiful red`, `beautiful red colar`, `red colar sun`]
如何在查询中实现这一目标的最有效和最快的方法。
Select column from table -- transforming into the above
每一行?
我试过了:
with words as (
select unnest(regexp_split_to_array(`roses beautiful red colar sun`,'\s+')) as c from col
)
select c1.c || c2.c
from words c1
cross join words c2;
但我不知道如何将交叉连接用于更高级的场景。