当前位置: 首页 > 工具软件 > zhparser > 使用案例 >

postgres-xl 数据库 安装中文分词 zhparser

通俊发
2023-12-01

在工作工作中遇到使用postgres-xl数据库,需要使用中文分词zhparser ,postgresql的zhparser安装使用比较方便,但是postgres-xl在网上却找不到怎么安装 zhparser,于是自己摸索,进过4个小时的尝试,终于安装成功,记录下来分享给大家

    postgres-xl数据库的安装不在这里赘述,网上的安装教程比较多。我是安装了3台Centos服务器,建议没有安装过postgresql,会简单很多。

    

   GTM/GTM_PROXY 在同一台机器

   coordinator/datanode      coord1  dn1  dn2  一个协调器和两个数据节点在一台服务器

  coordinator/datanode      coord2  dn3  dn4  一个协调器和两个数据节点在一台服务器  


    安装目录为:/usr/local/pgxl     

    配置集群,在coord1

                                 alter node coord1 with (type=coordinator,host='XXX.XXX.XXX.XXX', port=11921);

                                 create  node coord2 with (type=coordinator,host='XXX.XXX.XXX.XXX', port=11921);

                                 create node dn1 with (type=datanode, host='XXX.XXX.XXX.XXX',port=11922,primary,preferred);

 create node dn2 with (type=datanode, host='XXX.XXX.XXX.XXX',port=11923);

                                 create node dn3 with (type=datanode, host='XXX.XXX.XXX.XXX',port=11922);

                                 create node dn4 with (type=datanode, host='XXX.XXX.XXX.XXX',port=11923);

  其他节点的配置参考 与此类似,可以参考网上的很多文章

  

   配置完成后启动 集群 网上的文章


   后面是如何安装配置zhparser,建议找一台没有安装过postgresql的机器,会比较方面


   1.先下载 scws-1.2.3.tar.bz2、zhparser  下载链接网上较多,这里不写了

   2.解压 scws-1.2.3.tar.bz

      tar jvxf scws-1.2.3.tar.bz

   3.编译scws

     cd scws-1.2.3 

     ./configure --prefix=/usr/local/pgxl/scws  

     prefix 根据自己的喜好设置

     make && make install

   5.解压 zhparser

     进入zhparser目录,执行

     SCWS_HOME=/usr/local/pgxl/scw make && make install

   正常情况下载这里就完成了,其他的配置按照zhparser 的说明进行



  如果在安装postgres-xl的机器上安装了postgresql,安装zhparser就会复杂一些,需要修改zhparser的Makefile文件

  主要是这里

  #PG_CONFIG = pg_config
  #PGXS := $(shell $(PG_CONFIG) --pgxs)
  PGXS := /usr/local/pgxl/lib/postgresql/pgxs/src/makefiles/pgxs.mk
  #include /usr/local/pgxl/lib/postgresql/pgxs/src/makefiles/pgxs.mk
  include $(PGXS)

  保存以后执行 

  SCWS_HOME=/usr/local/pgxl/scws make

  会出错

  gcc -DPGXC -DXCP -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -   fno-strict-aliasing -fwrapv -O2 -fpic -I/usr/local/pgxl/scws/include/scws  -I. -I./ -I/usr/pgsql-9.4/include/server -I/usr/pgsql-9.4/include/internal -   D_GNU_SOURCE   -c -o zhparser.o zhparser.c
  zhparser.c:10:22: error: postgres.h: No such file or directory
  zhparser.c:11:23: error: miscadmin.h: No such file or directory

  那我们就是直接修改一下 

  gcc -DPGXC -DXCP -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -   fno-strict-aliasing -fwrapv -O2 -fpic -I/usr/local/pgxl/scws/include/scws  -I. -I./ -I/usr/pgsql-9.4/include/server -I/usr/pgsql-9.4/include/internal -    D_GNU_SOURCE   -c -o zhparser.o zhparser.c

 执行下面的命令:

 gcc -DPGXC -DXCP -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -   fno-strict-aliasing -fwrapv -O2 -fpic -I/usr/local/pgxl/scws/include/scws  -I. -I.-I/usr/local/pgxl/include/server -/usr/local/pgxl/include/internal -    D_GNU_SOURCE   -c -o zhparser.o zhparser.c

 编译通过,然后执行

gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -fpic -shared  zhparser.o  -L/usr/local/pgxl/scws/lib -L/usr/lib64 -lscws -Wl,-rpath -Wl,/usr/local/pgxl/scws/lib -o zhparser.so

 编译成功了 zhparser.so


 需要拷贝一些文件到postgres-xl的目录

cp zhparser.so /usr/local/pgxl/lib/postgresql/zhparser.so

cp zhparser.control /usr/local/pgxl/share/postgresql/extension/

cp zhparser--1.0.sql zhparser--unpackaged--1.0.sql  /usr/local/pgxl/share/postgresql/extension/

cp dict.utf8.xdb rules.utf8.ini /usr/local/pgxl/share/postgresql/tsearch_data/


完成后重新启动postgres 就可以配置zhparser了。


 



 

 

  

  




 类似资料: