난 그냥 퍼지 텍스트 매칭을 위해 postgreSQL을 사용하기 시작했습니다. 두 개의 열이 있는데, job_title
및 company_name
입니다.PostgreSQL을 사용하여 여러 열의 전체 텍스트 검색
일반적인 전체 텍스트 검색은 job_title
과 company_name
을 연결 한 다음 단일 순위에 따라 검색 텍스트 결과를 반환합니다.
그러나 두 개의 열에서 텍스트 일치를 동일하게 처리하는 것은 필자의 경우 문제가 될 수 있습니다. 예를 들어, Google Co.
에서 Search Engineer
내가 각 열에 대해 서로 다른 가중치를 할당 할 수 있다는 사실을 알고 Engineer Co.
에서 Google Search
와 동등하게 평가되어서는 안된다. 그러나, 나는 다른 것보다 하나 더 중요하게 생각하는 이유가 없습니다.
키워드를 각 열과 별도로 일치시키고 각 키워드에 대해 "일치 점수"를 반환하려면 어떻게해야합니까?
뭔가 같은 : 당신이 지적했듯이
Jobs.where("(to_tsvector('english', position) @@ plainto_tsquery(:q)) AND
(to_tsvector('english',company) @@ plainto_tsquery(:q))", q: "Search Engineer", q: "Google")
우수 답변을 드린 감사합니다! – AdamNYC