Implement search with PostgreSQL trigrams

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Rename function to reflect that we only get one result

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Add loggers and make Ecto call parallels during search

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Implement trigrams for events & replace pg similarity operator % with <%

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Fix tests

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2019-02-21 18:11:49 +01:00
parent 131152abac
commit 4ec40d601b
18 changed files with 422 additions and 141 deletions

View File

@@ -59,12 +59,12 @@ defmodule Mobilizon.EventsTest do
assert title == hd(Events.find_events_by_name(event.title)).title
%Event{title: title2} = event2 = insert(:event, title: "Special event")
assert event2.title == hd(Events.find_events_by_name("Special")).title
assert event2.title == Events.find_events_by_name("Special") |> hd() |> Map.get(:title)
assert event2.title == hd(Events.find_events_by_name(" Special ")).title
assert event2.title == Events.find_events_by_name(" Special ") |> hd() |> Map.get(:title)
assert title == hd(Events.find_events_by_name("")).title
assert title2 == hd(tl(Events.find_events_by_name(""))).title
assert title == Events.find_events_by_name("") |> hd() |> Map.get(:title)
assert title2 == Events.find_events_by_name("") |> tl |> hd() |> Map.get(:title)
end
test "find_close_events/3 returns events in the area" do