【发布时间】:2017-09-09 23:25:27
【问题描述】:
我有一个很小的数据集(约 1000 行)。每行都有一个用户名、名字和姓氏。我可以使用pg_trgm 对这三个字段进行模糊搜索,并将三个字段连接在一起,每个字段之间有两个空格吗?或者,有没有更好的方法来搜索这组用户,使用三元组或任何其他方法?
【问题讨论】:
标签: postgresql search indexing fuzzy-search trigram
我有一个很小的数据集(约 1000 行)。每行都有一个用户名、名字和姓氏。我可以使用pg_trgm 对这三个字段进行模糊搜索,并将三个字段连接在一起,每个字段之间有两个空格吗?或者,有没有更好的方法来搜索这组用户,使用三元组或任何其他方法?
【问题讨论】:
标签: postgresql search indexing fuzzy-search trigram
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
【讨论】:
username和first_name之间有两个空格,而first_name和last_name之间只有一个空格?