【06】懒猫微服应用-Outline添加中文搜索
Outline
懒猫商店的Outline是官方的镜像版本,对于中文搜索不友好。
要实现中文搜索,需要替换下outline和PG的镜像。
申请开发者权限
注册成功,审核通过后,才能推送镜像到懒猫官方仓库。
推送需要的镜像到懒猫官方仓库
需要推送两个镜像:
lzc-cli appstore copy-image sldaniel/outline
lzc-cli appstore copy-image groonga/pgroonga:3.2.5-debian-17
推送成功后,会获得,懒猫官方仓库的镜像ID
比如:
uploaded: registry.lazycat.cloud/xxx/sldaniel/outline:027ce20ed2915b59
uploaded: registry.lazycat.cloud/xxx/groonga/pgroonga:eac35cf7ca550cc5
这个不能直接用哈,要自己推送。
SSH懒猫
应用商店下载懒猫开发者工具,打开微服 SSHD ,然后就可以SSH链接了。
获取当前的懒猫微服应用-outline的配置
在商店下载outline,并安装完成。
然后进入目录:
cd /data/system/pkgm/lpks
ls
可以看到当前安装的所有lpk,将outline的复制出来
cp cloud.lazycat.app.outline.lpk /data/app/
解压
unzip cloud.lazycat.app.outline.lpk -d my_outline_pkg
修改lzc-manifest.yml中的outline和pg的镜像ID,保存后,重新打包
zip -r ../cloud.lazycat.app.outline.zip .
mv cloud.lazycat.app.outline.zip cloud.lazycat.app.outline.lpk
先卸载已经安装的outline,然后将修改后的LPK移动到网盘目录下,双击安装
mv cloud.lazycat.app.outline.lpk /data/document/ayu/懒猫/
创建索引
到上一步,虽然替换完成了镜像,但是搜索还会报错,需要添加一下索引
SSH链接到懒猫,
cd /data/app/
lzc-docker ps -a | grep out
找到pg容器,
lzc-docker exec -it 1e87b9902775 bash
链接数据库
psql -h localhost -U user -d outline
输入密码,成功后
新建索引
CREATE EXTENSION IF NOT EXISTS pgroonga;
CREATE INDEX text_pgroonga_index ON documents USING pgroonga (text);
CREATE INDEX title_pgroonga_index
ON documents
USING pgroonga (title pgroonga_varchar_full_text_search_ops_v2);
然后就OK了
参考链接
https://github.com/outline/outline/issues/3207
After some research, I found a solution for me:
- Use pgroonga image as database. It adds fast full text search for postgres and based on postgres official docker image, so the parameters/config are totally compatible, you can easily replace it without change anything. for me, i use
groonga/pgroonga:latest-debian-14
tag; you can choose yours from here- create index:
CREATE EXTENSION IF NOT EXISTS pgroonga; CREATE INDEX text_pgroonga_index ON documents USING pgroonga (text); CREATE INDEX title_pgroonga_index ON documents USING pgroonga (title pgroonga_varchar_full_text_search_ops_v2);
- change code, inspired by @ckmarkhsu
server/models/helpers/SearchHelper.ts
:317// Build the SQL query to get documentIds, ranking, and search term context const whereClause = ` "searchVector" @@ to_tsquery('english', :query) AND
with
const keywords = `${"'" + query + "'"}`; // Build the SQL query to get documentIds, ranking, and search term context const whereClause = ` (text &@~ ${keywords} OR title &@~ ${keywords}) AND
Here is my fork, and docker build
You can cherry pick the cjk branch and build by yourself or just use my image.