postgresql全文搜索postgresql - 日语,中文,阿拉伯语

时间:2010-03-22 21:44:45

标签: postgresql unicode internationalization full-text-search

我正在postgresql中为我当前的项目设计全文搜索功能。 到目前为止,它与ispell / myspell词典一起正常工作。 现在我需要添加对中文,日文和阿拉伯文搜索的支持。 我从哪里开始? 这些语言没有可用的模板或词典 据我所知。 它是否适用于pg_catalog.simple配置?

3 个答案:

答案 0 :(得分:3)

来自manual的提示:OpenOffice Wiki上提供了大量字典。

答案 1 :(得分:2)

字典对中文没有太多帮助 - 你需要查看NGRAM令牌......

答案 2 :(得分:1)

stackoverflow.com上链接的类似解决方案是How do I implement full text search in Chinese on PostgreSQL?

虽然如此,我会根据我的经验和互联网解决方案提供以下详细解决方案。我使用SCWSzhparser这两种工具作为postgres中文全文搜索的解决方案。

20160131更新:
您必须检查是否已安装postgresql-server-devel- {number version},因为我们将使用pgxs函数在postgresql中创建扩展名。

Step1 :安装SCWS。
值得注意的是 - prefix = / usr / local / scws 跟随 ./configure 。不只是在第4行以下有./configure。

wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
tar xvjf scws-1.2.2.tar.bz2
cd scws-1.2.2
./configure --prefix=/usr/local/scws 
make
make install

要检查是否已成功安装,请输入以下命令:

ls -al /usr/local/scws/lib/libscws.la


Step2 :安装zhparser

git clone https://github.com/amutu/zhparser.git
cd zhparser
SCWS_HOME=/usr/local/scws/include make && make install

20160131更新: 如果您使用Mac OS X Yosemite,则SCWS_HOME的上限值相同。但是如果您使用Ubuntu 14.04 LTS,请将SCWS_HOME的值更改为/ usr / local / scws

Step3 :在Postres中使用zhparser配置新扩展
Step3.1 :通过终端/命令行

登录您的postgres数据库
psql yourdatabasename

Step3.2 :在Postgres中创建扩展程序。您可以指定所需的字典名称。

CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION dictionarynameyouwant (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION dictionarynameyouwant ADD MAPPING FOR n,v,a,i,e,l WITH simple;


如果您按照上述步骤操作,您可以使用Postgres全文搜索功能中文/普通话。

使用pg_search gem的Rails中的额外步骤(不是必需的):Step4 。在以下位置配置字典名称:字典属性:app/models/yourmodel.rb

中的tsearch
class YourOwnClass < ActiveRecord::Base
    ...
    include PgSearch
    pg_search_scope :functionnameyoulike, :against => [columnsyoulike1, columnsyoulike2, ...,etc], :using => { :tsearch => {:dictionary => "dictionary name you just specified in creating a extension in postgres", blah blah blah, ..., etc} }
end

参考:
1. SCWS install tutorial
2. Zhparser@github.com
3. Francs' Post - Postgres full-text search in Chinese with zhparser and SCWS
4. Rails365.net's Post - Postgres full-text search in Chinese with pg_search gem with zhparser
5. My Post at xuite.net - Make Postgres support full text search in Mandarin/Chinese