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容器,

image-20250527223311329

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了

image-20250527223537139

参考链接

https://github.com/outline/outline/issues/3207

After some research, I found a solution for me:

  1. 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
  2. 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);
  1. 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.