如何在PostgreSQL上用中文实现全文搜索?

时间:2010-10-22 06:43:45

标签: postgresql localization full-text-search cjk

之前已经问过这个问题:

Postgresql full text search in postgresql - japanese, chinese, arabic

但据我所知,中国人没有答案。我看了一下OpenOffice wiki,它没有中文字典。

编辑:由于我们已成功将PG的内部FTS引擎用于英文文档,因此我们不希望转移到外部索引引擎。基本上,我正在寻找的是中文FTS配置,包括简体中文(普通话)的解析器和词典。

3 个答案:

答案 0 :(得分:4)

我知道这是一个老问题,但有一个Postgres扩展名为中文:https://github.com/amutu/zhparser/

答案 1 :(得分:3)

我刚刚在PostgreSQL中实现了一个中文FTS解决方案。我是通过从中文输入创建NGRAM令牌并使用嵌入式函数创建必要的tsvector来实现的(在我的例子中,我使用了plpythonu)。它工作得非常好(非常适合移动到SQL Server !!!)。

答案 2 :(得分:2)

使用Solr索引您的数据,它是一个建立在Lucene之上的开源企业搜索服务器。

您可以在此处找到有关Solr的更多信息:

http://lucene.apache.org/solr/

这里有一本关于操作方法的好书(立即下载PDF):

https://www.packtpub.com/solr-1-4-enterprise-search-server/book

请务必使用中文标记器,例如solr.ChineseTokenizerFactory,因为中文不是以空格分隔的。