commit: e928e307f34542b0a0af8b615c986aeac478b637
parent 4445421297f4a4375ce9df4857a66ad08e984507
Author: Ekaterina Vaartis <vaartis@kotobank.ch>
Date: Wed, 10 Nov 2021 21:25:12 +0300
Add a reindex option
Signed-off-by: Ekaterina Vaartis <vaartis@kotobank.ch>
Diffstat:
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/lib/mix/tasks/pleroma/search/meilisearch.ex b/lib/mix/tasks/pleroma/search/meilisearch.ex
@@ -11,9 +11,11 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
import Pleroma.Search.Meilisearch, only: [meili_post!: 2, meili_delete!: 1, meili_get!: 1]
- def run(["index"]) do
+ def run(["index" | args]) do
start_pleroma()
+ is_reindex = "--reindex" in args
+
meili_post!(
"/indexes/objects/settings/ranking-rules",
[
@@ -68,6 +70,19 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
{[objects], new_acc}
end)
|> Stream.each(fn objects ->
+ objects =
+ objects
+ |> Enum.filter(fn o ->
+ if is_reindex do
+ result = meili_get!("/indexes/objects/documents/#{o.id}")
+
+ # Filter out the already indexed documents. This is true when the document does not exist
+ result["errorCode"] == "document_not_found"
+ else
+ true
+ end
+ end)
+
result =
meili_post!(
"/indexes/objects/documents",