commit: 09a1ae1b6eca4efbb935aa1c0da950009d110fb2
parent a67f9da5cc46b4e184aa1afe3dd1bd1df31de15b
Author: Ekaterina Vaartis <vaartis@kotobank.ch>
Date: Mon, 23 Aug 2021 20:21:46 +0300
Add the meilisearch.stats command
Diffstat:
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/lib/mix/tasks/pleroma/search/meilisearch.ex b/lib/mix/tasks/pleroma/search/meilisearch.ex
@@ -9,7 +9,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
import Mix.Pleroma
import Ecto.Query
- import Pleroma.Search.Meilisearch, only: [meili_post!: 2, meili_delete!: 1]
+ import Pleroma.Search.Meilisearch, only: [meili_post!: 2, meili_delete!: 1, meili_get!: 1]
def run(["index"]) do
start_pleroma()
@@ -111,4 +111,12 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
IO.puts("Error fetching the key, check the master key is correct: #{inspect(decoded)}")
end
end
+
+ def run(["stats"]) do
+ start_pleroma()
+
+ result = meili_get!("/indexes/objects/stats")
+ IO.puts("Number of entries: #{result["numberOfDocuments"]}")
+ IO.puts("Indexing? #{result["isIndexing"]}")
+ end
end
diff --git a/lib/pleroma/search/meilisearch.ex b/lib/pleroma/search/meilisearch.ex
@@ -13,6 +13,18 @@ defmodule Pleroma.Search.Meilisearch do
if is_nil(private_key), do: [], else: [{"X-Meili-API-Key", private_key}]
end
+ def meili_get!(path) do
+ endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
+
+ {:ok, result} =
+ Pleroma.HTTP.get(
+ Path.join(endpoint, path),
+ meili_headers()
+ )
+
+ Jason.decode!(result.body)
+ end
+
def meili_post!(path, params) do
endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])