Add the meilisearch.stats command
authorEkaterina Vaartis <vaartis@kotobank.ch>
Mon, 23 Aug 2021 17:21:46 +0000 (20:21 +0300)
committerFloatingGhost <hannah@coffee-and-dreams.uk>
Wed, 29 Jun 2022 19:48:29 +0000 (20:48 +0100)
lib/mix/tasks/pleroma/search/meilisearch.ex
lib/pleroma/search/meilisearch.ex

index 557b0618212fd7cb5c8c1049e9ab3ce714205ad8..f2d9fe312882778dee68b09a8d1782c08504d4c2 100644 (file)
@@ -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
index 8745d539d799a3a4e6b12b06a5e7cae0f3e8fdd4..1ad17bf9f70680c98b33b24c3756849d100c3734 100644 (file)
@@ -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])