Open einverne opened 3 years ago
这个问题确实存在。我觉得主要在于分词算法和词库吧。还需要确认这里说的搜索具体用到的SQL是什么。
中文分词和词库用的是 scws 是比较老的了。zhparser提供了自定义词库的功能,但是我尝试过加词分词效果更差了(应该是我用法有问题)
我也遇到了这个问题,我是用作miniflux的数据库。试下来似乎是没有分词,只有标点符号间的完整语句能搜索到。
我也遇到了这个问题,我是用作miniflux的数据库。试下来似乎是没有分词,只有标点符号间的完整语句能搜索到。
我也用在miniflux,分词是可用的。可以参考 https://github.com/fengkx/docker-miniflux-postgresql
如果是中途切换的镜像需要手动触发 update,让Postgres重建索引
如果是中途切换的镜像需要手动触发 update,让Postgres重建索引
请问怎么手动出发update,没怎么用过postgres,是REINDEX
吗
update entries set content=content;
不知道是什么原因,这个好像没更新 document_vectors
,
但是通过以下步骤可以更新 document_vectors
的分词结果
default_text_search_config
为 'chinese'
psql
里连接到miniflux数据库后运行 update entries set document_vectors = setweight(to_tsvector(left(coalesce(title, ''), 500000)), 'A') || setweight(to_tsvector(left(coalesce(content, ''), 500000)), 'B');
↑这样应该会和 miniflux的搜索 保持一致
但是这样会将内容里面的链接也一起分词,不知道有没有更好的解决办法。
我也遇到了这个问题,我是用作miniflux的数据库。试下来似乎是没有分词,只有标点符号间的完整语句能搜索到。
我也是这几天,试着搭个rss用用。对比选择了miniflux之后。用了两三天,突然发现的这个问题。 要是用第三方客户端,不用这个王爷,应该不用在意这个。 就是会有点不完美的感觉。
然后发现之前放弃的freshrss,默认就能搜到。而且随便分词都可以。虽然可能更占资源,但是少搭建个数据库。 准备之后用freshrss看看了。
从 PostgreSQL 官方的镜像替换成该镜像之后,依然无法获取很好的中文搜索结果。
比如想要搜索标题中带「韩国」的文章,出现的结果并没有包含「疯狂打击补课的韩国,后来怎么样了」这一条。
而使用 「疯狂打击补课的韩国」去搜索是可以搜索得到。
不清楚哪里还需要做调整,先开一个 issue 之后再仔细研究一下。