使用 sego 为 Miniflux 条目创建索引,以更好地支持全文搜索。
部署需求:
- PostgresQL >= 9.6
首先,你需要检查你的 miniflux 数据库,确保 COLLATE 是 C.UTF-8
,你可以使用下面的命令来检查:
psql -l
输出类似下表:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------------+-------------+----------+---------+---------+-----------------------------
miniflux | miniflux | UTF8 | C.UTF-8 | C.UTF-8 |
------------------+-------------+----------+---------+---------+-----------------------------
如果 Collate 不是 C.UTF-8
,你应该先转换到 C.UTF-8
,否则 miniflux-indexer
不会正常工作。
然后需要创建一个名为 index_info
的数据库表来存储 miniflux-indexer
相关的信息,这里强烈使用
与 miniflux
不同的数据库或模式。
采用下面的命令来创建数据库:
createdb -O miniflux miniflux_indexer
然后使用 migrate 工具 来执行数据库迁移脚本:
migrate -database $DATABASE_URL -path ./migrations up
然后,用下面的命令来启动 miniflux-indexer
:
miniflux-indexer start --database-url $DATABASE_URL --miniflux-database-url $MINIFLUX_DATABASE_URL
第一次索引可能会需要 1GB 内存,请确保内存充足。
miniflux-indexer
可以使用环境变量 或命令行参数进行设置,设置项可以通过
miniflux-indexer start --help
和 miniflux-indexer --help
命令来查看。
下面是一个示意的 .env 配置文件:
DATABASE_URL='postgres:https://miniflux:[email protected]/miniflux_indexer?sslmode=disable'
MINIFLUX_DATABASE_URL='postgres:https://miniflux:miniflux@@127.0.0.1/miniflux?sslmode=disable'
INDEXER_BATCH_SIZE=50
LOG_LEVEL=info
LOG_FORMAT=human
# 控制数据库驱动日志级别的环境变量,默认为警告级别
PGX_LOG_LEVEL=error
更多的数据库驱动配置可以在数据 URL 上添加查询参数指定,包含下面设置项:
pool_max_conns
: integer greater than 0pool_min_conns
: integer 0 or greaterpool_max_conn_lifetime
: duration stringpool_max_conn_idle_time
: duration stringpool_health_check_period
: duration string
详情请参考 pgxpool 文档。