Postgres中文分词

环境

  • CentOS Linux release 7.2.1511 (Core)

安装Postgres

安装postgres很简单

  1. yum安装
    sudo yum install postgresql-server postgresql-contrib postgresql-devel
  2. 初始化数据库
    sudo postgresql-setup initdb

配置密码和远程访问

  1. 修改 /var/lib/pgsql/data/pg_hba.conf
    原本的
host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

修改之后

host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               md5
  1. 修改/var/lib/pgsql/data/postgresql.conf
    原本的
    #listen_addresses=’localhost'
    修改之后
    #listen_addresses=’*'

  2. 增加密码

su - postgres
psql
alter user postgres with password '123456';
  1. 启动服务
systemctl start postgresql
systemctl enable postgresql

安装中文分词插件zhparser

  1. 安装SCWS
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
tar xf scws-1.2.3.tar.bz2
cd scws-1.2.3
./configure
make install
  1. 安装zhparser
git clone https://github.com/amutu/zhparser.git
make && make install

实验

-- create the extension

CREATE EXTENSION zhparser;

-- make test configuration using parser

CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);

-- add token mapping

ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;

-- ts_parse

SELECT * FROM ts_parse('zhparser', 'hello world! 2010年保障房建设在全国范围内获全面启动,从中央到地方纷纷加大 了保障房的建设和投入力度 。2011年,保障房进入了更大规模的建设阶段。住房城乡建设部党组书记、部长姜伟新去年底在全国住房城乡建设工作会议上表示,要继续推进保障性安居工程建设。');

----------------------------------------------------------------------------
                                 结果
----------------------------------------------------------------------------
 tokid |  token   
-------+----------
   101 | hello
   101 | world
   117 | !
   101 | 2010
   113 | 年
   118 | 保障
   110 | 房建



-- test to_tsvector

SELECT to_tsvector('testzhcfg','“今年保障房新开工数量虽然有所下调,但实际的年度在建规模以及竣工规模会超以往年份,相对应的对资金的需求也会创历>史纪录。”陈国强说。在他看来,与2011年相比,2012年的保障房建设在资金配套上的压力将更为严峻。') as result;

----------------------------------------------------------------------------
                                 结果
----------------------------------------------------------------------------
 '2011':27 '2012':29 '上':35 '下调':7 '严峻':37 '会':14 '会创':20 '保障':1,30 '压力':36 '史':21 '国强'
:24 '在建':10 '实际':8 '对应':17 '年份':16 '年度':9 '开工':4 '房':2 '房建':31 '数量':5 '新':3 '有所':6
 '相比':28 '看来':26 '竣工':12 '纪录':22 '规模':11,13 '设在':32 '说':25 '资金':18,33 '超':15 '配套':34
 '陈':23 '需求':19
(1 row)

-- test to_tsquery

SELECT to_tsquery('testzhcfg', '保障房资金压力');

----------------------------------------------------------------------------
                                 结果
----------------------------------------------------------------------------

 '保障' & '房' & '资金' & '压力'
(1 row)
点赞