settings: "priv/es-mappings/activity.json",
store: Pleroma.Search.Elasticsearch.Store,
sources: [Pleroma.Activity],
- bulk_page_size: 5000,
+ bulk_page_size: 1000,
bulk_wait_interval: 15_000
}
}
=== "OTP"
```sh
-./bin/pleroma_ctl search.elasticsearch index activities --cluster Pleroma.Search.Elasticsearch.Cluster
+./bin/pleroma_ctl search import activities
```
=== "From Source"
```sh
-mix elasticsearch.build activities --cluster Pleroma.Search.Elasticsearch.Cluster
-```
\ No newline at end of file
+mix pleroma.search import activities
+```
{Majic.Pool,
[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, []))
end
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
--- /dev/null
+# 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
+++ /dev/null
-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