Discourse 中文无法搜索问题

我已经将语言设置成中文了,然后搜索词的长度最小为2,但是还是搜索不出中文内容。


英文的倒是可以搜索

请问难道设置中文搜索还需要其他配置吗? 我使用的就是 DO安装方案。

@fantasticfears

1赞

另外,我发现此站也是无法中文搜索的…

你的discourse版本是?
DO安装方案新安装的应该是 v1.1.2 还是 v1.2.0.beta2
PostgreSQL数据库en_US.UTF-8

中文搜索应该没有问题的, 就是不怎么准确(相比于google站内搜索)
下面是我的测试. (版本升级太快了, 我疲于同步, 没有上线, 不能供你测试了.)

不知道PostgreSQL数据库改为zh_CN.UTF-8 是不是会好点, 没试验.

刚修改完设置,应该搜索正常了吧。

确认容器内的 locale 设置是正确的。可以运行 psql 看看 PostgreSQL 有没有抱怨没有 locale。

请问如何修改locale设置? 我用sudo -u postgres psql -l 看到 数据库的编码是 SQL_ASCII,另外app.yml里面db_default_text_search_config是设置是pg_catalog.english这个要不要修改啊 ?

我的版本是 v1.2.0.beta2 , 查了 PostgreSQL 的编码是 SQL_ASCII,应该改成UTF-8就可以了,但是不知道怎么改

这是我的结果,进到容器里看的。

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges    
-----------+----------+----------+-------------+-------------+------------------------
 discourse | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres          +
           |          |          |             |             | postgres=CTc/postgres +
           |          |          |             |             | discourse=CTc/postgres

db_default_text_search_config 没有更改。

我就是按照DO那个教程一步步下来的,可是怎么编码不一样呢? 我的discourse版本是 v1.2.0.beta2 ,这个有问题吗?

我改怎么改数据库编码呢? 昨天重新build了一次还是一样

进到容器里,看看 locale -a 里有对应的编码吗?

配置文件里的 env 是不是都在上面的编码列表里呢?

没有locale -a,另外 env里的LANG属性是zh_CN

设回 en_US.UTF-8

我在本地, 就是删了重建UTF8数据库. 进容器了也是这样吧.

但是 discourse_docker 在哪里改PostgreSQL配置就不知道了.
(改了以后安装就是utf8, 是这意思吧)

默认不是 en_US.UTF-8 么?
我刚刚去DO装了一个, 确定是en_US.UTF-8啊.

root@IP:~# locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US
en_US.iso88591
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

不应该是zh_CN.UTF-8 ?? :confused:

我在DO装的, 什么都没改, PostgreSQL默认就是en_US.UTF-8

重新将LANG设置为en_US.UTF-8后,删除shared/standalone/postgres_data(其实是改名备份了),然后再rebuild app 就好了。
@fantasticfears 建议 重新修改下 30 分钟内在云上部署 Discourse 这篇帖子,里面的LANG 设置有些误导

1赞

谢谢提醒,已经删除。

@imjark 请问,您的网站现在可以使用中文搜索了吗?

可以呀

非常感谢,根据你的设置方法,我把 mini search term length 改成 2 居然可以搜索了,太好了!

1赞

赞,完美解决我的问题