-1
작은 데이터 세트 (~ 1000 행)가 있습니다. 각 행에는 사용자 이름, 이름 및 성이 있습니다. pg_trgm
을 사용하여이 세 필드에서 퍼지 검색을 수행하고 세 필드를 두 필드 사이에 공백으로 연결할 수 있습니까? 또는 트라이 그램 또는 다른 방법을 사용하여이 사용자 집합을 검색하는 더 좋은 방법이 있습니까?포스트그레스 이름 검색
작은 데이터 세트 (~ 1000 행)가 있습니다. 각 행에는 사용자 이름, 이름 및 성이 있습니다. pg_trgm
을 사용하여이 세 필드에서 퍼지 검색을 수행하고 세 필드를 두 필드 사이에 공백으로 연결할 수 있습니까? 또는 트라이 그램 또는 다른 방법을 사용하여이 사용자 집합을 검색하는 더 좋은 방법이 있습니까?포스트그레스 이름 검색
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