feat: finalisation for search

This commit is contained in:
2026-04-23 17:19:17 +02:00
parent 5d16a89d1c
commit 485c4b65b7
4 changed files with 195 additions and 19 deletions

View File

@@ -224,4 +224,40 @@ defmodule BDS.SearchTest do
assert {:ok, media_results} = BDS.Search.search_media(project.id, "imported", %{})
assert Enum.map(media_results.media, & &1.id) == ["search-media-from-file"]
end
test "search_posts applies language-aware stemming to indexed and query text", %{project: project} do
assert {:ok, german_post} =
BDS.Posts.create_post(%{
project_id: project.id,
title: "Morgenroutine",
content: "Die Katzen schlafen am Fenster.",
language: "de"
})
assert {:ok, french_post} =
BDS.Posts.create_post(%{
project_id: project.id,
title: "Routine matinale",
content: "Je cours chaque matin avant le travail.",
language: "fr"
})
assert {:ok, german_results} = BDS.Search.search_posts(project.id, "katze", %{})
assert Enum.map(german_results.posts, & &1.id) == [german_post.id]
assert {:ok, french_results} = BDS.Search.search_posts(project.id, "courir", %{})
assert Enum.map(french_results.posts, & &1.id) == [french_post.id]
end
test "lists supported stemmer languages using normalized ISO codes" do
languages = BDS.Search.list_stemmer_languages()
assert is_list(languages)
assert "en" in languages
assert "de" in languages
assert "fr" in languages
assert "it" in languages
assert "es" in languages
assert Enum.uniq(languages) == languages
end
end