-1
我有一個很小的數據集(〜1000行)。每一行都有一個用戶名,名字和姓氏。我可以使用pg_trgm
對這三個字段進行模糊搜索,並將這三個字段連接在一起,每個字段之間有兩個空格?或者,是否有更好的方法來搜索這組用戶,使用卦或任何其他方法?Postgres名稱搜索
我有一個很小的數據集(〜1000行)。每一行都有一個用戶名,名字和姓氏。我可以使用pg_trgm
對這三個字段進行模糊搜索,並將這三個字段連接在一起,每個字段之間有兩個空格?或者,是否有更好的方法來搜索這組用戶,使用卦或任何其他方法?Postgres名稱搜索
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'之間'只有一個? – Shien
@Shien只是一個錯字 –
更重要的是,當用戶鍵入名字和用戶名(用空格隔開)時會發生什麼? – Shien