Flarum 论坛解决中文搜索标题和帖子内容的问题

问题描述

最近在用开源 Flarum 的论坛搭站点,因为这个 Flarum 是海外开源项目,所以在中文搜索上遇到了点问题。

我的环境:

折腾经历:

1、一开始通过Flarum中文社区入手,直接安装了 【Search In Title】这个插件,装完之后确实能搜到(但没装之前,没试过搜索),所以以为就简单解决了。但最近发现论坛搜索只能搜标题,不能搜帖子里的内容。(后来发现这个插件是不需要的)

2、然后继续走社区找,发现了一个【整合 xunsearch 的中文搜索插件】,但是该插件开发的比较早,插件基于 v0.1.0-beta.7 版本的 Flarum。看评论,在新版本的Flarum会有点问题,所以就没实践了。

3、然后继续找到另一种方案,通过修改mysql配置和重建索引,但是这个我也没实践,不知道行不行。

4、到这里,我大概知道是索引问题,那么Flarum已经更新到1.8.5,会不会已经解决了这个问题了呢?我就尝试把【Search In Title】关掉,再去搜索,发现也是能搜,而且内容也能搜!!!但很快又发现了新的问题,有些帖子能搜出来,有些不能搜出来,不管是标题还是内容,都有这种情况。。。蛋疼

5、然后继续找解决方案,然后找到【Flarum借助Sonic开启中文搜索】方案,Sonic是一个用Rust编写的开源搜索引擎服务器,专注于提供简单、高性能和轻量级的搜索解决方案。

最终解决了我的问题,希望对你也适用

体验地址:爱盘资源

具体操作

服务器环境:

腾讯云

系统:CentOS 7.9.2009 x86_64(Py3.7.9)

宝塔面板: 免费版  Linux正式版8.0.5

第一步:安装Docker

这里我们选用Docker来部署Sonic,便于管理项目。

宝塔面板支持一键安装并启用Docker,点击Docker这个菜单进去,如果还没安装,会弹窗给你点安装。你也可以在「软件商店」搜索「docker」,选择一个进行可视化安装。

第二步:拉取镜像

Docker安装成功后,进入Docker菜单,点击「镜像」,点击「从仓库中拉取」,在弹窗上选择仓库名 为「docker官方库」,镜像名填:「valeriansaliou/sonic:v1.4.3」,点击确认即可拉取镜像。

创建成功,弹窗关闭后,列表就会有一条记录,如上图。

第三步:配置文件

由于需要在容器中运行Sonic,所以我们需要在本机目录编写一个配置文件,然后映射到容器中中,并且将存储目录也映射过去。

在宝塔界面的菜单,点击 「网站」,进入后找到你的站点,点击根目录,进入文件管理

 新建一个 「sonic」文件夹

然后点击「sonic」进入这个目录,再创建config.cfg文件 和 「store」文件夹

双击 config.cfg,拷贝以下代码到config.cfg文件,然后只需修改那行「你的自定义密码」,自己想一个密码填进去,点保存即可:

[server]

log_level = "error"

[channel]

inet = "0.0.0.0:1491"
tcp_timeout = 30

auth_password = "你的自定义密码"

[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 = "/var/lib/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 = "/var/lib/sonic/store/fst/"

[store.fst.pool]

inactive_after = 300

[store.fst.graph]

consolidate_after = 180

max_size = 2048
max_words = 250000

第四步:添加并启动容器

在宝塔面板,点击「Docker」菜单(吐槽一句,腾讯云的香港服务器真的太慢了,打开这个docker菜单很慢很慢)

 然后填入以下信息:

 

如上图所示,分别配置一下端口和挂载目录就行
添加后容器就会自动运行,如果没有错的话,你应该会看到容器已经进入已启动的状态,如下图所示: 

如果并没有「已启动」,检查一下容器的日志,看看是哪里存在问题。 

第五步:安装Sonic插件

在宝塔界面的菜单,点击 「网站」,进入后找到你的站点,点击根目录,进入文件管理后,点击「终端」

 复制安装插件代码,粘贴进去回车安装即可

composer require ganuonglachanh/sonic

插件安装成功后,去你的论坛站点登录后台,就能看到 「Search By Sonic」(除非没安装成功),开启插件,填写你在创建config.cfg文件时所填写的密码,主要不要填写错了。 

 

最后一步:创建索引

 本质还是索引的问题。

在宝塔界面的菜单,点击 「网站」,进入后找到你的站点,点击根目录,进入文件管理后,点击「终端」

php flarum sonic:addtoindex

如上图,就代表成功 了,快去你的论坛搜索试试吧。

 体验地址:爱盘资源 

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值