summaryrefslogtreecommitdiff
path: root/lib/mix
diff options
context:
space:
mode:
authorEkaterina Vaartis <vaartis@kotobank.ch>2021-08-16 22:24:31 +0300
committerEkaterina Vaartis <vaartis@kotobank.ch>2022-10-10 20:19:08 +0300
commit365024abec905e427babb5403f0fccbde65f4bcd (patch)
tree34e15d1ad7a11d302ba0dead88ad496328ca08d5 /lib/mix
parent0318e9a59945d7a5625111157867f0f9ebaffd91 (diff)
downloadpleroma-365024abec905e427babb5403f0fccbde65f4bcd.tar.gz
pleroma-365024abec905e427babb5403f0fccbde65f4bcd.zip
Ensure only indexing public posts and implement clearing and delete
Diffstat (limited to 'lib/mix')
-rw-r--r--lib/mix/tasks/pleroma/search/meilisearch.ex15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/mix/tasks/pleroma/search/meilisearch.ex b/lib/mix/tasks/pleroma/search/meilisearch.ex
index 1fece96e5..0b86fdece 100644
--- a/lib/mix/tasks/pleroma/search/meilisearch.ex
+++ b/lib/mix/tasks/pleroma/search/meilisearch.ex
@@ -4,6 +4,7 @@
defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
require Logger
+ require Pleroma.Constants
import Mix.Pleroma
import Ecto.Query
@@ -29,7 +30,11 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
Pleroma.Repo.chunk_stream(
from(Pleroma.Object,
- where: fragment("data->>'type' = 'Note'") and fragment("LENGTH(data->>'source') > 0")
+ # Only index public posts which are notes and have some text
+ where:
+ fragment("data->>'type' = 'Note'") and
+ fragment("LENGTH(data->>'source') > 0") and
+ fragment("data->'to' \\? ?", ^Pleroma.Constants.as_public())
),
200,
:batches
@@ -51,4 +56,12 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
end)
|> Stream.run()
end
+
+ def run(["clear"]) do
+ start_pleroma()
+
+ endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
+
+ {:ok, _} = Pleroma.HTTP.request(:delete, "#{endpoint}/indexes/objects/documents", "", [], [])
+ end
end