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.
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.
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/
The name of the Repo supervisor process
The directory where to keep repository data, like migrations, schema and more. Defaults to priv/YOUR_REPO. It must always point to a subdirectory inside the priv directory
An URL that specifies storage information
The log level used when logging the query with Elixir's Logger
The size of the pool used by the connection module. Defaults to 10
Server hostname
Connect to Postgres via UNIX sockets in the given directory. The socket name is derived based on the port. This is the preferred method for configuring sockets and it takes precedence over the hostname. If you are connecting to a socket outside of the Postgres convention, use :socket instead.
Connect to Postgres via UNIX sockets in the given path. This option takes precedence over the :hostname and :socket_dir
Server port (default: 5432)
The database to connect to
Specifies the name of the database to connect to when creating or dropping the database. Defaults to "postgres"
The connection pool module, defaults to DBConnection.ConnectionPool
Set to true if ssl should be used
The timeout for establishing new connections. Defaults to 5000
How to prepare queries, either :named to use named queries or :unnamed to force unnamed queries (default: :named)