Skip to content

Instantly share code, notes, and snippets.

@elight
Created January 26, 2012 20:48
Show Gist options
  • Save elight/1685013 to your computer and use it in GitHub Desktop.
Save elight/1685013 to your computer and use it in GitHub Desktop.
=> ["Barcelona", "FC Basel", "FC Bayern München", "FC Copenhagen", "FC Copenhagen", "FC Copenhagen", "FC Dallas", "FC Metalist Kharkiz", "FC Metalist Kharkiz", "FC Metalist Kharkiz", "FC Metalist Kharkiz", "FC Porto", "FC Sion", "FC Sion", "FC Sion", "FC Sion", "FC Twente", "FC Twente", "FC Twente", "FC Twente", "FC Vaslui", "FC Vaslui", "FC Vaslui", "FC Vaslui", "FC Zurich", "FC Zurich", "FC Zurich", "FC Zurich", "FC Zurich", "FC Zurich", "Porto", "Seattle", "Seattle Sounders FC", "Sevilla", "Toronto FC"]
1.9.2p290 :009 > ap Team.search("FC Sion").map(&:name)
Team Load (3.4ms) SELECT "teams".*, ts_rank(to_tsvector('english', "teams"."name"::text), to_tsquery('english', 'FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."description"::text), to_tsquery('english', 'FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."icon"::text), to_tsquery('english', 'FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."url"::text), to_tsquery('english', 'FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."stadium"::text), to_tsquery('english', 'FC\ Sion'::text)) AS "rank0.7563724079887144" FROM "teams" WHERE (to_tsvector('english', "teams"."name"::text) @@ to_tsquery('english', 'FC\ Sion'::text) OR to_tsvector('english', "teams"."description"::text) @@ to_tsquery('english', 'FC\ Sion'::text) OR to_tsvector('english', "teams"."icon"::text) @@ to_tsquery('english', 'FC\ Sion'::text) OR to_tsvector('english', "teams"."url"::text) @@ to_tsquery('english', 'FC\ Sion'::text) OR to_tsvector('english', "teams"."stadium"::text) @@ to_tsquery('english', 'FC\ Sion'::text)) ORDER BY teams.name, "rank0.7563724079887144" DESC
[
[0] "FC Sion",
[1] "FC Sion",
[2] "FC Sion",
[3] "FC Sion"
]
=> ["FC Sion", "FC Sion", "FC Sion", "FC Sion"]
1.9.2p290 :010 > ap Team.search("I love FC Sion").map(&:name)
Team Load (3.4ms) SELECT "teams".*, ts_rank(to_tsvector('english', "teams"."name"::text), to_tsquery('english', 'I\ love\ FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."description"::text), to_tsquery('english', 'I\ love\ FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."icon"::text), to_tsquery('english', 'I\ love\ FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."url"::text), to_tsquery('english', 'I\ love\ FC\ Sion'::text)) + ts_rank(to_tsvector('english', "teams"."stadium"::text), to_tsquery('english', 'I\ love\ FC\ Sion'::text)) AS "rank0.9868456152131966" FROM "teams" WHERE (to_tsvector('english', "teams"."name"::text) @@ to_tsquery('english', 'I\ love\ FC\ Sion'::text) OR to_tsvector('english', "teams"."description"::text) @@ to_tsquery('english', 'I\ love\ FC\ Sion'::text) OR to_tsvector('english', "teams"."icon"::text) @@ to_tsquery('english', 'I\ love\ FC\ Sion'::text) OR to_tsvector('english', "teams"."url"::text) @@ to_tsquery('english', 'I\ love\ FC\ Sion'::text) OR to_tsvector('english', "teams"."stadium"::text) @@ to_tsquery('english', 'I\ love\ FC\ Sion'::text)) ORDER BY teams.name, "rank0.9868456152131966" DESC
[]
=> []
1.9.2p290 :011 > ap Team.search("FC Sion is awesome").map(&:name)
Team Load (394.1ms) SELECT "teams".*, ts_rank(to_tsvector('english', "teams"."name"::text), to_tsquery('english', 'FC\ Sion\ is\ awesome'::text)) + ts_rank(to_tsvector('english', "teams"."description"::text), to_tsquery('english', 'FC\ Sion\ is\ awesome'::text)) + ts_rank(to_tsvector('english', "teams"."icon"::text), to_tsquery('english', 'FC\ Sion\ is\ awesome'::text)) + ts_rank(to_tsvector('english', "teams"."url"::text), to_tsquery('english', 'FC\ Sion\ is\ awesome'::text)) + ts_rank(to_tsvector('english', "teams"."stadium"::text), to_tsquery('english', 'FC\ Sion\ is\ awesome'::text)) AS "rank0.861734031961306" FROM "teams" WHERE (to_tsvector('english', "teams"."name"::text) @@ to_tsquery('english', 'FC\ Sion\ is\ awesome'::text) OR to_tsvector('english', "teams"."description"::text) @@ to_tsquery('english', 'FC\ Sion\ is\ awesome'::text) OR to_tsvector('english', "teams"."icon"::text) @@ to_tsquery('english', 'FC\ Sion\ is\ awesome'::text) OR to_tsvector('english', "teams"."url"::text) @@ to_tsquery('english', 'FC\ Sion\ is\ awesome'::text) OR to_tsvector('english', "teams"."stadium"::text) @@ to_tsquery('english', 'FC\ Sion\ is\ awesome'::text)) ORDER BY teams.name, "rank0.861734031961306" DESC
[]
=> []
1.9.2p290 :012 >
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment