1Zhparser
2========
3
4Zhparser is a PostgreSQL extension for full-text search of Chinese. It implements a Chinese parser base on
5the Simple Chinese Word Segmentation(SCWS).
6
7Project home page: http://blog.amutu.com/zhparser/
8
9INSTALL
10-------
111.安装SCWS
12
13```
14 wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar xf -
15
16 cd scws-1.2.3 ; ./configure ; make install
17
18注意:在FreeBSD release 10及以上版本上运行configure时,需要增加--with-pic选项。
19
20如果是从github上下载的scws源码需要先运行以下命令生成configure文件:
21
22 touch README;aclocal;autoconf;autoheader;libtoolize;automake --add-missing
23
24```
252.下载zhparser源码
26
27```
28 git clone https://github.com/amutu/zhparser.git
29
30```
313.编译和安装zhparser
32
33```
34 SCWS_HOME=/usr/local make && make install
35
36```
37如果你同时安装了多个版本的PostgreSQL, 可以通过指定 PG\_CONFIG 来为指定的版本编译扩展:
38
39```
40 PG_CONFIG=/usr/lib/postgresql/9.5/bin/pg_config make && make install
41
42```
43
44注意:在*BSD上编译安装时,使用gmake代替make
45
464.创建extension
47
48```
49 psql dbname superuser -c 'CREATE EXTENSION zhparser'
50
51```
52
53CONFIGURATION
54-------
55以下配置在PG9.2及以上版本使用,这些选项是用来控制字典加载行为和分词行为的,这些选项都不是必须的,默认都为false(即如果没有在配置文件中设置这些选项,则zhparser的行为与将下面的选项设置为false一致)。
56
57忽略所有的标点等特殊符号:
58zhparser.punctuation_ignore = f
59
60闲散文字自动以二字分词法聚合:
61zhparser.seg_with_duality = f
62
63将词典全部加载到内存里:
64zhparser.dict_in_memory = f
65
66短词复合:
67zhparser.multi_short = f
68
69散字二元复合:
70zhparser.multi_duality = f
71
72重要单字复合:
73zhparser.multi_zmain = f
74
75全部单字复合:
76zhparser.multi_zall = f
77
78除了zhparser自带的词典,用户可以增加自定义词典,自定义词典的优先级高于自带的词典。自定义词典的文件必须放在share/postgresql/tsearch_data目录中,zhparser根据文件扩展名确定词典的格式类型,.txt扩展名表示词典是文本格式,.xdb扩展名表示这个词典是xdb格式,多个文件使用逗号分隔,词典的分词优先级由低到高,如:
79
80zhparser.extra_dicts = 'dict_extra.txt,mydict.xdb'
81
82注意:zhparser.extra_dictszhparser.dict_in_memory两个选项需要在backend启动前设置(可以在配置文件中修改然后reload,之后新建连接会生效),其他选项可以随时在session中设置生效。zhparser的选项与scws相关的选项对应,关于这些选项的含义,可以参考scws的文档:http://www.xunsearch.com/scws/docs.php#libscws
83
84EXAMPLE
85-------
86```
87-- create the extension
88
89CREATE EXTENSION zhparser;
90
91-- make test configuration using parser
92
93CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);
94
95-- add token mapping
96
97ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;
98
99-- ts_parse
100
101SELECT * FROM ts_parse('zhparser', 'hello world! 2010年保障房建设在全国范围内获全面启动,从中央到地方纷纷加大 了保障房的建设和投入力度 。2011年,保障房进入了更大规模的建设阶段。住房城乡建设部党组书记、部长姜伟新去年底在全国住房城乡建设工作会议上表示,要继续推进保障性安居工程建设。');
102
103-- test to_tsvector
104
105SELECT to_tsvector('testzhcfg','“今年保障房新开工数量虽然有所下调,但实际的年度在建规模以及竣工规模会超以往年份,相对应的对资金的需求也会创历>史纪录。”陈国强说。在他看来,与2011年相比,2012年的保障房建设在资金配套上的压力将更为严峻。');
106
107-- test to_tsquery
108
109SELECT to_tsquery('testzhcfg', '保障房资金压力');
110```
111
112自定义词库
113-------
114** 详解 TXT 词库的写法 (TXT词库目前已兼容 cli/scws_gen_dict 所用的文本词库) **
115
1161) 每行一条记录,以 # 或 分号开头的相当于注释,忽略跳过
117
1182) 每行由4个字段组成,依次为“词语"(由中文字或3个以下的字母合成), "TF", "IDF", "词性",字段使用空格或制表符分开,数量不限,可自行对齐以美化
119
1203) 除“词语”外,其它字段可忽略不写。若忽略,TF和IDF默认值为 1.0 而 词性为 "@"
121
1224) 由于 TXT 库动态加载(内部监测文件修改时间自动转换成 xdb 存于系统临时目录),故建议TXT词库不要过大
123
1245) 删除词做法,请将词性设为“!“,则表示该词设为无效,即使在其它核心库中存在该词也视为无效
125
126注意:1.自定义词典的格式可以是文本TXT,也可以是二进制的XDB格式。XDB格式效率更高,适合大辞典使用。可以使用scws自带的工具scws-gen-dict将文本词典转换为XDB格式;2.zhparser默认的词典是简体中文,如果需要繁体中文,可以在这里下载已经生成好的XDB格式此词典:http://www.xunsearch.com/scws/download.php 。 更多信息参见:http://www.xunsearch.com/scws/docs.php#utilscws
127
128COPYRITE
129--------
130
131zhparser
132
133Portions Copyright (c) 2012-2017, Jov(amutu@amutu.com)
134
135Permission to use, copy, modify, and distribute this software and its documentation
136for any purpose, without fee, and without a written agreement is hereby granted,
137provided that the above copyright notice and this paragraph and the following
138two paragraphs appear in all copies.
139
140IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
141DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
142LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
143DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
144POSSIBILITY OF SUCH DAMAGE.
145
146THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
147INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
148AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
149ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
150PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
151