fix ES import from live (#29)

Reviewed-on: AkkomaGang/akkoma#29
This commit is contained in:
floatingghost 2022-06-30 18:44:31 +00:00
parent 40bec73db6
commit 2937495712
5 changed files with 36 additions and 14 deletions

View file

@ -874,7 +874,7 @@
settings: "priv/es-mappings/activity.json", settings: "priv/es-mappings/activity.json",
store: Pleroma.Search.Elasticsearch.Store, store: Pleroma.Search.Elasticsearch.Store,
sources: [Pleroma.Activity], sources: [Pleroma.Activity],
bulk_page_size: 5000, bulk_page_size: 1000,
bulk_wait_interval: 15_000 bulk_wait_interval: 15_000
} }
} }

View file

@ -154,10 +154,10 @@ To start the initial indexing, run the `build` command:
=== "OTP" === "OTP"
```sh ```sh
./bin/pleroma_ctl search.elasticsearch index activities --cluster Pleroma.Search.Elasticsearch.Cluster ./bin/pleroma_ctl search import activities
``` ```
=== "From Source" === "From Source"
```sh ```sh
mix elasticsearch.build activities --cluster Pleroma.Search.Elasticsearch.Cluster mix pleroma.search import activities
``` ```

View file

@ -57,7 +57,8 @@ def start_pleroma do
{Majic.Pool, {Majic.Pool,
[name: Pleroma.MajicPool, pool_size: Pleroma.Config.get([:majic_pool, :size], 2)]} [name: Pleroma.MajicPool, pool_size: Pleroma.Config.get([:majic_pool, :size], 2)]}
] ++ ] ++
http_children(adapter) http_children(adapter) ++
elasticsearch_children()
cachex_children = Enum.map(@cachex_children, &Pleroma.Application.build_cachex(&1, [])) cachex_children = Enum.map(@cachex_children, &Pleroma.Application.build_cachex(&1, []))
@ -136,4 +137,14 @@ defp http_children(Tesla.Adapter.Gun) do
end end
defp http_children(_), do: [] defp http_children(_), do: []
def elasticsearch_children do
config = Pleroma.Config.get([Pleroma.Search, :module])
if config == Pleroma.Search.Elasticsearch do
[Pleroma.Search.Elasticsearch.Cluster]
else
[]
end
end
end end

View file

@ -0,0 +1,20 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.Search do
use Mix.Task
import Mix.Pleroma
@shortdoc "Manages elasticsearch"
def run(["import", "activities" | _rest]) do
start_pleroma()
Elasticsearch.Index.Bulk.upload(
Pleroma.Search.Elasticsearch.Cluster,
"activities",
Pleroma.Config.get([Pleroma.Search.Elasticsearch.Cluster, :indexes, :activities])
)
end
end

View file

@ -1,9 +0,0 @@
defmodule Mix.Tasks.Pleroma.Search.Elasticsearch do
alias Mix.Tasks.Elasticsearch.Build
import Mix.Pleroma
def run(["index" | args]) do
start_pleroma()
Build.run(args)
end
end