0

我有一个很小的数据集(约 1000 行)。每行都有一个用户名、名字和姓氏。我可以通过使用pg_trgm并连接三个字段以及每个字段之间的两个空格来对这三个字段进行模糊搜索吗?或者,是否有更好的方法来搜索这组用户,使用三元组或任何其他方法?

4

1 回答 1

2
select format('%s  %s  %s', username, first_name, last_name)
from t
order by greatest (
    similarity(_name, username),
    similarity(_name, first_name),
    similarity(_name, last_name)
) desc
limit 10

或者

select s
from t, format('%s  %s  %s', username, first_name, last_name) s(s)
order by word_similarity(_name, s) desc
limit 10
于 2017-04-13T18:34:08.670 回答