commit: 985a0a28c708f7abb5b6db39db8baeb2f4311333
parent 1d4464065575324d19a74e878611fa4d7f59c982
Author: lain <lain@soykaf.club>
Date: Sun, 21 Dec 2025 11:36:39 +0000
Merge branch 'docs-rum-idx' into 'develop'
Docs RUM: add OTP command, recommend vacuum after migration
See merge request pleroma/pleroma!4363
Diffstat:
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/changelog.d/docs-rum-otp-vacuum.change b/changelog.d/docs-rum-otp-vacuum.change
@@ -0,0 +1 @@
+Docs RUM index: Add OTP install command, update index size expectation and recommend VACUUM FULL
diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md
@@ -904,21 +904,31 @@ config :logger, :console,
### RUM indexing for full text search
-!!! warning
- It is recommended to use PostgreSQL v11 or newer. We have seen some minor issues with lower PostgreSQL versions.
-
* `rum_enabled`: If RUM indexes should be used. Defaults to `false`.
-RUM indexes are an alternative indexing scheme that is not included in PostgreSQL by default. While they may eventually be mainlined, for now they have to be installed as a PostgreSQL extension from https://github.com/postgrespro/rum.
+RUM indexes are an alternative indexing scheme that is not included in PostgreSQL by default. While they may eventually be mainlined, for now they have to be installed as a PostgreSQL extension from [https://github.com/postgrespro/rum](https://github.com/postgrespro/rum).
-Their advantage over the standard GIN indexes is that they allow efficient ordering of search results by timestamp, which makes search queries a lot faster on larger servers, by one or two orders of magnitude. They take up around 3 times as much space as GIN indexes.
+Their advantage over the standard GIN indexes is that they allow efficient ordering of search results by timestamp, which makes search queries a lot faster on larger servers, by one or two orders of magnitude. They take up around 3-4 times as much space as GIN indexes.
To enable them, both the `rum_enabled` flag has to be set and the following special migration has to be run:
-`mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/`
+ * Source install:
+ - Stop Pleroma
+ - `mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/`
+ * OTP install:
+ - Stop Pleroma
+ - `pleroma_ctl migrate --migrations-path priv/repo/optional_migrations/rum_indexing/`
This will probably take a long time.
+!!! note
+ It is recommended to `VACUUM FULL` the objects table after the migration has completed, to do that run:
+ ```
+ # sudo -Hu postgres vacuumdb --full --analyze -t objects <pleroma DB name>
+ ```
+
+Now you can start Pleroma back up.
+
## Alternative client protocols
### BBS / SSH access