基于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.gz和CRF++-0.54.gz 解压需要注意:不要用gunzip这个命令解压后(还是一个压缩文件,只是没有压缩文件的扩展名而已),要用 tar zxvfcmake-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分词模块时,需要的文件) 安装完成后的目录结构如下
我在安装的过程出现了一个错误,大家在安装的时候需要注意 在postgres里安装分词函数的时候出现了以下错误的信息: postgres=# i /opt/PostgreSQL/9.1/share/postgresql/contrib/pg_tokenize.sql 后来为了验证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执行成功,如图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |