这个问题已经被问过:如何在PostgreSQL上实现中文全文搜索?
Postgresql full text search in postgresql - japanese, chinese, arabic
但也有中国没有答案,据我所看到的。我看了一下OpenOffice的wiki,并没有中文字典。
编辑:由于我们已经成功地在英文文档中使用PG的内部FTS引擎,我们不想移动到外部索引引擎。基本上,我正在寻找的是中文FTS配置,包括简体中文(普通话)的解析器和词典。
这个问题已经被问过:如何在PostgreSQL上实现中文全文搜索?
Postgresql full text search in postgresql - japanese, chinese, arabic
但也有中国没有答案,据我所看到的。我看了一下OpenOffice的wiki,并没有中文字典。
编辑:由于我们已经成功地在英文文档中使用PG的内部FTS引擎,我们不想移动到外部索引引擎。基本上,我正在寻找的是中文FTS配置,包括简体中文(普通话)的解析器和词典。
我知道这是一个老问题,但有一个Postgres扩展中国:https://github.com/amutu/zhparser/
我得到'文本搜索查询只包含停用词或不包含词位,忽略'问题。请参阅https://stackoverflow.com/questions/41659909/fts-non-latin-text-search-query-contains-only-stop-words-or-doesnt-contain-lex – Growler 2017-01-17 15:33:53
使用Solr为您的数据建立索引,它是一个建立在Lucene之上的开源企业搜索服务器。
您可以在Solr的找到更多的信息在这里:
http://lucene.apache.org/solr/
一本好书,就如何对(立即用PDF下载)位置:
https://www.packtpub.com/solr-1-4-enterprise-search-server/book
而且一定要使用中文标记器,例如solr.ChineseTokenizerFactory,因为中文不是空格分隔的。
我们需要使用内置于Postgres中的FTS引擎。我们已经成功实施英文FTS,并希望继续使用相同的系统来处理中文文档。 – 2010-10-24 23:10:55
哦,我明白了。那么,我的回答对你没有帮助。我从你原来的帖子看到你对这个问题的澄清/编辑。我不确定你的时间表是否适合,但Solr解决方案是开源的。你*可能*能够借用ChineseTokenizerFactory - 它的逻辑克服了我所理解的固有问题,即语言不是空白的。祝你好运。 – 2010-10-25 14:14:08
我刚在PostgreSQL中实现了一个中文FTS解决方案。我通过从中文输入创建NGRAM令牌来实现这一点,并使用嵌入式函数创建必要的tsvector
(在我的例子中,我使用plpythonu
)。它工作得很好(大量移动到SQL Server !!!)。
你能分享你的代码吗? – Evgeny 2013-02-10 17:54:19
是的,请做! – 2013-10-13 16:10:48
我们无法找到一个解决方案(即使我提供的奖金),我们最终转移到SQL Server,它本身就支持中国FTS。幸运的是,我们的应用程序被设计为相当数据库供应商不可知论者,所以这对我们来说不是一个大问题。 – 2010-12-20 10:35:48