Inspired? No home

Prioritize database search results with Searchlogic (Ruby on Rails)

This is why I love ruby. With one simple line I can combine two arrays and filter out duplicates. Here I have used Searchlogic which provides a simple ruby syntax for creating SQL queries. This will execute two SQL queries to the database and combine both resultset but the first query will be presented before the latter. My goal was to search for one parameter in a range of fields, but I wanted to prioritize those results where the paramater exists in more important columns such as name and title. If the parameter is found in columns like description it will be presented at the end of the combined resultset.

def self.search(search) return (self.firstname_or_lastname_or_area_or_title_like(search) + self.bio_or_description_like(search) ).uniq end

Written on 04 March 2010.
blog comments powered by Disqus