Skip to main content

Sonic


Sonic

安装

安装 sonic-serveropen in new window

使用 root 用户执行如下命令:

nix-env -iA nixpkgs.sonic-server

安装 sonic 插件

使用 root 用户执行如下命令:

yarn global add @hydrooj/sonic
hydrooj addon add @hydrooj/sonic

启动

/root/.sonic/config.cfg(没有的自行建立,也可以换成其他的你喜欢的路径)按照以下配置示例写入配置。

配置示例:

# Sonic
# Fast, lightweight and schema-less search backend
# Configuration file
# Example: https://github.com/valeriansaliou/sonic/blob/master/config.cfg


[server]

log_level = "error"


[channel]

inet = "127.0.0.1:1491" # 默认监听本机
tcp_timeout = 300

auth_password = "SecretPassword"

[channel.search]

query_limit_default = 10
query_limit_maximum = 100
query_alternates_try = 4

suggest_limit_default = 5
suggest_limit_maximum = 20


[store]

[store.kv]

path = "/data/sonic/store/kv/"

retain_word_objects = 1000

[store.kv.pool]

inactive_after = 1800

[store.kv.database]

flush_after = 900

compress = true
parallelism = 2
max_files = 100
max_compactions = 1
max_flushes = 1
write_buffer = 16384
write_ahead_log = true

[store.fst]

path = "/data/sonic/store/fst/"

[store.fst.pool]

inactive_after = 300

[store.fst.graph]

consolidate_after = 180

max_size = 2048
max_words = 250000

执行如下命令:

pm2 start sonic -- -c /root/.sonic/config.cfg
pm2 save

配置

后端地址配置

进入 HydroOJ 控制面板,配置 sonic 后端地址。

如果您直接复制配置示例,那么按照以下内容配置:

  • host: 127.0.0.1
  • port: 1491
  • auth: SecretPassword

修改完成后,重启 HydroOJ。

重启 HydroOJ

执行命令 pm2 restart hydrooj

重建题目索引

进入 HydroOJ 控制面板,在脚本管理中找到重建题目索引,点击运行,参数留空即可。

至此,搜索功能应当可以正常使用。

FAQ

安装后题目搜索不正常

请更新到 HydroOJ 最新版本后,再运行重建题目索引。