基于postgreSQL9.1的中文全文检索(基于Linux)

最近在给公司的一个产品做中文全文检索的功能,由于目前所有的数据都是基于postgreSQL的,所以需要一个基于该数据库做一个中文分词的处理。鉴于网上很多资料安装混乱,特将我自己的亲自安装的过程记录下来,方便大家更好的安装。

我这里是安装postgreSQL9.1,目录是/opt/PostgreSQL/9.1/。关于postgreSQL9.1安装非常简单,这里就不做介绍了。

 

目前采用Bamboo的分词开源项目,

安装此分词时,需要先安装CRF++和CMake编译环境,下载路径如下:

 

安装CRF++工具包

请参考 http://crfpp.sourceforge.net

 

安装CMake编译环境

Slackware 默认自带CMake

Ubuntu & Debian 系统使用: apt-get install cmake

archlinux系统: 使用pacman -S cmake

其他Linux/Unix系统,请去CMake官方下载源代码编译。地址是:http://www.cmake.org

注:cmake需要2.6版本以上

 

我安装的时候用的是cmake-2.8.6.gzCRF++-0.54.gz

解压需要注意:不要用gunzip这个命令解压后(还是一个压缩文件,只是没有压缩文件的扩展名而已),要用

tar zxvf cmake-2.8.6.gz

tar zxvf CRF++-0.54.gz

才能生成目录的形式,

安装CRF++和CMake都很简单,都是解压生成目录,进入该目录后,然后就是三个步骤:

./configure

make

make install

 

最后安装nlpbamboo-1.1.2.bz2

这个文件解压也要注意,运行命令如下:

bzip2 -d nlpbamboo-1.1.2.bz2

tar xvf nlpbamboo-1.1.2

就能生成目录了,

或者运行命令

tar -jxvf nlpbamboo-1.1.2.bz2

进入目录再运行如下命令:

cd nlpbamboo-1.1.2 

mkdir build

cd build

cmake .. -DCMAKE_BUILD_TYPE=release

make all

make install

就安装完成了bamboo分词库了。 

 

 后面是安装PHP扩展(可选)

cd /opt/bamboo/exts/

phpize

make

make install

完毕

 

开始下载分词库数据文件

cd /opt/bamboo/

wget http://nlpbamboo.googlecode.com/files/index.tar.bz2

tar -jxvf index.bz2

cd /opt/bamboo/exts/postgres/pg_tokenize/

make

make install

cd /opt/bamboo/exts/postgres/chinese_parser/

make

make install

touch /opt/PostgreSQL/9.1/share/postgresql/tsearch_data/chinese_utf8.stop(这个命令是在postgreSQL安装Tsearch2分词模块时,需要的文件)

安装完成后的目录结构如下

  • /opt/bamboo/bin/ : 可执行程序和训练脚本文件
  • /opt/bamboo/etc/ : 配置文件
  • /opt/bamboo/template/ : CRF训练模板文件 (.tmpl)
  • /opt/bamboo/processor/ : processor库
  • /opt/bamboo/exts/ : 扩展接口
  • /usr/lib/ : 动态链接库
  • /usr/include/bamboo/ : C/C++的头文件

我在安装的过程出现了一个错误,大家在安装的时候需要注意

在postgres里安装分词函数的时候出现了以下错误的信息:

postgres=# \i /opt/PostgreSQL/9.1/share/postgresql/contrib/pg_tokenize.sql
SET
psql.bin:/opt/PostgreSQL/9.1/share/postgresql/contrib/pg_tokenize.sql:2: ERROR:  could not load library "/opt/PostgreSQL/9.1/lib/postgresql/pg_tokenize.so": libbamboo.so.2: 无法打开共享对象文件: 没有那个文件或目录

后来为了验证bamboo安装是否成功,我运行了命令如下:

cd /opt/bamboo/bin

./bamboo -p crf_seg

也出现了以下的错误信息如图:

 

解决方式:

echo "/usr/lib">>/etc/ld.so.conf(这个命令是bamboo对应的动态链接库)

echo "/usr/local/lib" >>/etc/ld.so.conf(这个命令是CRF对应的动态链接库)

ldconfig

完成之后,测试结果如下:

这是就说明bamboo完全安装成功了。
另外再运行也出现以下问题,如图:

解决方式:
是分词库下载问题导致,处理方式如图:


这时再安装分词函数即成功,如图:

 

接着安装Tsearch2分词模块,成功如图:

 

目前有个问题是我采用的是SecureCRT的远程终端,登录到postgres后为了检验分词函数和Tsearch分词模块函数的时候,无法直接输入中文。

不知道是什么问题导致,但是在8.x版本里是可以的,在9.1的版本就不行了。

 

我采用的是写出sql文件,让postgresQL执行成功,如图:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值