mirror of
https://git.youjo.love/youjo/youjo-be.git
synced 2024-11-20 05:49:54 +01:00
Add a reindex option
Signed-off-by: Ekaterina Vaartis <vaartis@kotobank.ch>
This commit is contained in:
parent
d99a2be351
commit
9e7d7ebd48
1 changed files with 16 additions and 1 deletions
|
@ -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",
|
||||
|
|
Loading…
Reference in a new issue