Resolved bug where null values in search terms would break search (#57)
This commit is contained in:
parent
1c65b41002
commit
1caddd86c7
2 changed files with 9 additions and 2 deletions
|
|
@ -105,9 +105,9 @@ defmodule Pinchflat.Media do
|
|||
select_merge: %{
|
||||
matching_search_term:
|
||||
fragment("""
|
||||
snippet(media_items_search_index, 0, '[PF_HIGHLIGHT]', '[/PF_HIGHLIGHT]', '...', 20) ||
|
||||
coalesce(snippet(media_items_search_index, 0, '[PF_HIGHLIGHT]', '[/PF_HIGHLIGHT]', '...', 20), '') ||
|
||||
' ' ||
|
||||
snippet(media_items_search_index, 1, '[PF_HIGHLIGHT]', '[/PF_HIGHLIGHT]', '...', 20)
|
||||
coalesce(snippet(media_items_search_index, 1, '[PF_HIGHLIGHT]', '[/PF_HIGHLIGHT]', '...', 20), '')
|
||||
""")
|
||||
},
|
||||
order_by: [desc: fragment("rank")],
|
||||
|
|
|
|||
|
|
@ -267,6 +267,13 @@ defmodule Pinchflat.MediaTest do
|
|||
assert String.contains?(res.matching_search_term, "The [PF_HIGHLIGHT]quick[/PF_HIGHLIGHT] brown fox")
|
||||
end
|
||||
|
||||
test "doesn't set matching_search_term to nil if one of the attributes we search on is null" do
|
||||
media_item_fixture(%{title: "foobar baz", description: nil})
|
||||
|
||||
assert [%{matching_search_term: matching_search_term}] = Media.search("baz")
|
||||
refute is_nil(matching_search_term)
|
||||
end
|
||||
|
||||
test "optionally lets you specify a limit" do
|
||||
media_item_fixture(%{title: "The small gray dog"})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue