Remove redundant checks from backends' add_to_index/1

This commit is contained in:
Mark Felder 2024-06-26 09:24:48 -04:00
commit a5c88eb39b
2 changed files with 26 additions and 34 deletions

View file

@ -4,6 +4,7 @@ defmodule Pleroma.Search.Meilisearch do
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.Config.Getting, as: Config alias Pleroma.Config.Getting, as: Config
alias Pleroma.Object
import Pleroma.Search.DatabaseSearch import Pleroma.Search.DatabaseSearch
import Ecto.Query import Ecto.Query
@ -155,14 +156,13 @@ defmodule Pleroma.Search.Meilisearch do
end end
@impl true @impl true
def add_to_index(activity) do def add_to_index(%Activity{object: %Object{} = object} = activity) do
maybe_search_data = object_to_search_data(activity.object) search_data = object_to_search_data(object)
if activity.data["type"] == "Create" and maybe_search_data do
result = result =
meili_put( meili_put(
"/indexes/objects/documents", "/indexes/objects/documents",
[maybe_search_data] [search_data]
) )
with {:ok, %{"status" => "enqueued"}} <- result do with {:ok, %{"status" => "enqueued"}} <- result do
@ -174,10 +174,6 @@ defmodule Pleroma.Search.Meilisearch do
Logger.error("Failed to add activity #{activity.id} to index: #{inspect(result)}") Logger.error("Failed to add activity #{activity.id} to index: #{inspect(result)}")
{:error, result} {:error, result}
end end
else
# The post isn't something we can search, that's ok
:ok
end
end end
@impl true @impl true

View file

@ -4,6 +4,7 @@ defmodule Pleroma.Search.QdrantSearch do
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.Config.Getting, as: Config alias Pleroma.Config.Getting, as: Config
alias Pleroma.Object
alias __MODULE__.OpenAIClient alias __MODULE__.OpenAIClient
alias __MODULE__.QdrantClient alias __MODULE__.QdrantClient
@ -82,12 +83,10 @@ defmodule Pleroma.Search.QdrantSearch do
end end
@impl true @impl true
def add_to_index(activity) do def add_to_index(%Activity{object: %Object{} = object} = activity) do
# This will only index public or unlisted notes search_data = object_to_search_data(object)
maybe_search_data = object_to_search_data(activity.object)
if activity.data["type"] == "Create" and maybe_search_data do with {:ok, embedding} <- get_embedding(search_data.content),
with {:ok, embedding} <- get_embedding(maybe_search_data.content),
{:ok, %{status: 200}} <- {:ok, %{status: 200}} <-
QdrantClient.put( QdrantClient.put(
"/collections/posts/points", "/collections/posts/points",
@ -97,9 +96,6 @@ defmodule Pleroma.Search.QdrantSearch do
else else
e -> {:error, e} e -> {:error, e}
end end
else
:ok
end
end end
@impl true @impl true