2.2.?安装与配置

2.2.1. 安装zhparser
2.2.2. 获得解析器定义的token类型
2.2.3. 配置实例

2.2.1.?安装zhparser

2.2.1.1.?载入postgres_adaptor库

  1. 功能开启:

    修改配置文件uxsinodb.conf,,加载postgres_adaptor库:

    shared_preload_libraries = 'postgres_adaptor'
  2. 重启dbserver。

注意

如果提示类似ux_*未定义,可以修改UXDB安装目录下的dbsql/share/extension/postgres_adaptor.data文件。增加相应的PG和UXDB对应关系,需要注意的是这些配置项需要保证字典序排序,每个配置项的最大长度为63个字符,最多为2048个配置项。

2.2.1.2.?安装zhparser解析器

uxsql -d uxdb -U uxdb
uxdb=# CREATE EXTENSION zhparser;
uxdb=# \dFp
List of text search parsers
   Schema | Name | Description         
------------+----------+---------------------
 public     | zhparser | 
 ux_catalog | default  | default word parser

新增“zhparser”FTS解析器。

2.2.2.?获得解析器定义的token类型

uxdb=# select ts_token_type('zhparser');
 ts_token_type              
-----------------------------------------
 (97,a,adjective)
 (98,b,"differentiation (qu bie)")
 (99,c,conjunction)
 (100,d,adverb)
 (101,e,exclamation)
 (102,f,"position (fang wei)")
 (103,g,"root (ci gen)")
 (104,h,head)
 (105,i,idiom)
 (106,j,"abbreviation (jian lue)")
 (107,k,head)
 (108,l,"tmp (lin shi)")
 (109,m,numeral)
 (110,n,noun)
 (111,o,onomatopoeia)
 (112,p,prepositional)
 (113,q,quantity)
 (114,r,pronoun)
 (115,s,space)
 (116,t,time)
 (117,u,auxiliary)
 (118,v,verb)
 (119,w,"punctuation (qi ta biao dian)")
 (120,x,unknown)
 (121,y,"modal (yu qi)")
 (122,z,"status (zhuang tai)")

表?2.2.?token类型

词性缩写中文名称描述
a形容词取英语形容词adjective的第1个字母。
b区别词取汉字“别”的声母。
c连词取英语连词conjunction的第1个字母。
d副词取adverb的第2个字母,a已有他用。
e叹词取英语叹词exclamation的第1个字母。
f方位词取汉字“方”的声母。
g词根绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。
h前接成分取英语head的第1个字母。
i成语取英语成语idiom的第1个字母。
j简称略语取汉字“简”的声母。
k后接成分取英语成语back的第4个字母,b、a、c已有他用。
l习用语习用语尚未成为成语,有“临时性”的意思,取“临”的声母。
m数词取英语numeral的第3个字母,n、u已有他用。
n名词取英语名词noun的第1个字母。
o拟声词取英语拟声词onomatopoeia的第1个字母。
p介词取英语介词prepositional的第1个字母。
q量词取英语quantity的第1个字母。
r代词取英语代词pronoun的第2个字母,p已有他用。
s处所词取英语space的第1个字母。
t时间词取英语time的第1个字母。
u其他助词取英语助词auxiliary的第2个字母,a已有他用。
v动词取英语动词verb的第1个字母。
w标点符号其他标点符号。
x非语素字非语素字只是一个符号,字母x通常用于代表未知数、符号。
y语气词取汉字“语”的声母。
z状态词取汉字“状”的声母的前一个字母。

2.2.3.?配置实例

2.2.3.1.?创建FTS配置

uxdb=# CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser); 

2.2.3.2.?添加token映射

uxdb=# ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z WITH simple;

为防止遗漏造成匹配失败,将所有token类型全部映射。如果有未添加的token类型,将被屏蔽。示例如下:

uxdb=# CREATE TEXT SEARCH CONFIGURATION testzhcfg1 (PARSER = zhparser);
uxdb=# ALTER TEXT SEARCH CONFIGURATION testzhcfg1 ADD MAPPING FOR n,v,a,i,e,l WITH simple;
uxdb=# SELECT to_tsvector('testzhcfg1','南大 北大 东大 西大') ;
to_tsvector
----------------------------
 '东大':2 '北大':1 '西大':3
uxdb=# SELECT to_tsvector('testzhcfg','南大 北大 东大 西大') ;
to_tsvector
-------------------------------------
 '东大':3 '北大':2 '南大':1 '西大':4
uxdb=# SELECT ts_debug('testzhcfg','南大 北大 东大 西大') ;
ts_debug
-----------------------------------------
 (j,"abbreviation (jian lue)",南大,{},,)
 (n,noun,北大,{simple},simple,{北大})
 (n,noun,东大,{simple},simple,{东大})
 (n,noun,西大,{simple},simple,{西大})

词典使用的是内置的simple词典,仅做小写转换。词典被用来移除停用词并规范化词。一个被成功地规范化的词被称为一个词位。除了提高搜索质量,规范化和移除停用词减小了文档的tsvector表示的尺寸,因而提高了性能。

根据需要可以灵活定义词典和token映射。

XML 地图 | Sitemap 地图