diff options
author | Ekaterina Vaartis <vaartis@kotobank.ch> | 2021-11-10 21:25:12 +0300 |
---|---|---|
committer | Ekaterina Vaartis <vaartis@kotobank.ch> | 2022-10-10 20:19:09 +0300 |
commit | e928e307f34542b0a0af8b615c986aeac478b637 (patch) | |
tree | 6e4547529b192f770c6d2829d5ffe434b1d2bbe8 /lib/mix | |
parent | 4445421297f4a4375ce9df4857a66ad08e984507 (diff) | |
download | pleroma-e928e307f34542b0a0af8b615c986aeac478b637.tar.gz pleroma-e928e307f34542b0a0af8b615c986aeac478b637.zip |
Add a reindex option
Signed-off-by: Ekaterina Vaartis <vaartis@kotobank.ch>
Diffstat (limited to 'lib/mix')
-rw-r--r-- | lib/mix/tasks/pleroma/search/meilisearch.ex | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/mix/tasks/pleroma/search/meilisearch.ex b/lib/mix/tasks/pleroma/search/meilisearch.ex index cdf9ab0bd..2a3c3a8b9 100644 --- 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", |