kwvcprojparser不是内部_PostgreSQL 中文全文检索 (使用zhparser) 记录踩坑过程

1: 系统已经安装了postgresql 数据 (不管有没有安装全,总之已经可以创建数据库,创建表,查询....了)

2:查看已安装的数据库版本

postgres=# select version();

version

----------------------------------------------------------------------------------------------------------

PostgreSQL 10.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit

(1 row)

3: 需要安装(如果已经安装了就不用安装了,看好一共是3个 联系我QQ 820688215 可以互相学些PG)

yum -y install postgresql10-server postgresql10-contrib postgresql10-devel

4: 看一下自己的数据安装路径,然后配置环境变量

export PATH=/usr/pgsql-10/bin:$PATH

5:下载

安装SCWS

因为zhparser是基于SCWS(简易中文分词系统)开发的。所以必须首先安装SCWS。

·

自行创建安装目录

[root@jxstar-dev home]# wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2

--2020-12-22 18:13:20-- http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2

正在解析主机 www.xunsearch.com (www.xunsearch.com)... 202.75.214.12

正在连接 www.xunsearch.com (www.xunsearch.com)|202.75.214.12|:80... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度:435267 (425K) [text/plain]

正在保存至: “scws-1.2.2.tar.bz2”

100%[=======================================================================================================================================================>] 435,267 --.-K/s 用时 0.1s

2020-12-22 18:13:21 (2.80 MB/s) - 已保存 “scws-1.2.2.tar.bz2” [435267/435267])

[root@jxstar-dev home]# tar xvf scws-1.2.2.tar.bz2

scws-1.2.2/

scws-1.2.2/aclocal.m4

scws-1.2.2/API.md

scws-1.2.2/AUTHORS

scws-1.2.2/ChangeLog

scws-1.2.2/cli/

scws-1.2.2/config.guess

scws-1.2.2/config.h.in

scws-1.2.2/config.sub

scws-1.2.2/configure

scws-1.2.2/configure.ac

scws-1.2.2/COPYING

scws-1.2.2/depcomp

scws-1.2.2/etc/

scws-1.2.2/INSTALL

scws-1.2.2/install-sh

scws-1.2.2/libscws/

scws-1.2.2/ltmain.sh

scws-1.2.2/Makefile.am

scws-1.2.2/Makefile.in

scws-1.2.2/missing

scws-1.2.2/NEWS

scws-1.2.2/phpext/

scws-1.2.2/README

scws-1.2.2/win32/

scws-1.2.2/win32/libscws.dsp

scws-1.2.2/win32/libscws.vcproj

scws-1.2.2/win32/readme.txt

scws-1.2.2/win32/scws.dsp

scws-1.2.2/win32/scws.dsw

scws-1.2.2/win32/scws.sln

scws-1.2.2/win32/scws.vcproj

scws-1.2.2/phpext/config.m4

scws-1.2.2/phpext/CREDITS

scws-1.2.2/phpext/php_scws.c

scws-1.2.2/phpext/php_scws.h

scws-1.2.2/phpext/README.md

scws-1.2.2/phpext/scws.php

scws-1.2.2/phpext/scws_test.php

scws-1.2.2/phpext/win32/

scws-1.2.2/phpext/win32/php_scws-1.2.2-win32.zip

scws-1.2.2/phpext/win32/README.txt

scws-1.2.2/libscws/charset.c

scws-1.2.2/libscws/charset.h

scws-1.2.2/libscws/config_win32.h

scws-1.2.2/libscws/crc32.c

scws-1.2.2/libscws/crc32.h

scws-1.2.2/libscws/darray.c

scws-1.2.2/libscws/darray.h

scws-1.2.2/libscws/lock.c

scws-1.2.2/libscws/lock.h

scws-1.2.2/libscws/Makefile.am

scws-1.2.2/libscws/Makefile.in

scws-1.2.2/libscws/pool.c

scws-1.2.2/libscws/pool.h

scws-1.2.2/libscws/rule.c

scws-1.2.2/libscws/rule.h

scws-1.2.2/libscws/scws.c

scws-1.2.2/libscws/scws.h

scws-1.2.2/libscws/version.h

scws-1.2.2/libscws/version.h.in

scws-1.2.2/libscws/xdb.c

scws-1.2.2/libscws/xdb.h

scws-1.2.2/libscws/xdict.c

scws-1.2.2/libscws/xdict.h

scws-1.2.2/libscws/xtree.c

scws-1.2.2/libscws/xtree.h

scws-1.2.2/etc/Makefile.am

scws-1.2.2/etc/Makefile.in

scws-1.2.2/etc/rules.ini

scws-1.2.2/etc/rules.utf8.ini

scws-1.2.2/etc/rules_cht.utf8.ini

scws-1.2.2/cli/gen_dict.c

scws-1.2.2/cli/Makefile.am

scws-1.2.2/cli/Makefile.in

scws-1.2.2/cli/scws_cmd.c

//1>报错了!!!!!

[root@jxstar-dev scws-1.2.2]# ./configure

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for gcc... no   

checking for cc... no     这三个没有安装  需要yum install gcc cc cl.exe

checking for cl.exe... no

configure: error: in `/home/scws-1.2.2':

configure: error: no acceptable C compiler found in $PATH

See `config.log' for more details

再次执行正确

[root@jxstar-dev scws-1.2.2]# ./configure

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checki

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法:打开scws-1.2.3\win32里的解决方案文件,里面包括了scws和zhparser,另外一个是scws的php扩展不用编译 zhparserPostgresql中进行中文分词的常用扩展,网上的相关资料很多,安装的教程也不少,但大多数是linux的,并没有windows的安装介绍。原因有两个方面,一个是本身像这种数据库服务器一般都是linux系统的,另外一个比较致命,zhparser本身并没提供windows环境下的编译工程,连依赖库scws的readme里也建议在linux环境下使用,或者用cygwin或mingw一类工具。对于博主这种只使用windows环境(其实Postgresql也是刚接触),连makefile也搞不明白的真是头大。好在万变不离其中,编译环境只是工具,只要搞清楚个中原理(看代码),移植到windows+VS的环境应该也不是难事(当然这个也只是在轻量级的库下面适用)。下面进入正题: 干货在这里 ① 编译scws:由于 zhparser是基于scws(scws是简易中文分词系统的缩写,它的原理其实很简单,基于词典,将文本中的内容按照词典进行分词,提取关键字等。)做的分词,因此先要编译scws,网上下载下来的源码有vs2008的版本,因此,直接编译,后来出现头文件无法加入的错误,将相关文件编码方式修改成unicode解决(利用notepad++ 编码->转换为UTF-8编码)。 ② 编译zhparser:由于zhparser只提供了linux下面的makefile文件,想着用Mingw去编译,后来因为postgresql所在目录有空格,导致编译过程也失败。只好到vs2008里自建一个工程,建好工程后,首先把scws的头文件和库文件加进去,然后把postgresql的头文件和库文件加进去,设置项目属性为生成dll文件。 ③ 扩展安装:编译成功以后,在postgresql下面运行:create extension zhparser; 提示找不到control文件,在下载的源码文件夹里找到该文件,放到指定目录,再次运行sql,提示找不到dll文件,将dll文件放到指定目录,再运行,提示找不到zhprs_start函数,看来是dll没有正常explort出函数,修改源代码中的相关函数声明,再次运行后,显示成功。但zhparser源文件下其实还有很多文件,包括一个词典文件和ini配制文件,还不知道应该放在何处。 ④ zhparser运行环境配制:运行测试sql语句,发现并没有实现分词,想起来应该是词典位置不正确,到zhparser源码中去搜寻,发现如下代码,看来是放到tsearch_data目录下面,用同样的方法找到ini文件的目录,将它们都放进去,再次运行测试代码,得到正确结果。 测试代码: REATE EXTENSION zhparser; -- make test configuration using parser CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser); ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple; select to_tsvector('testzhcfg','南京市长江大桥');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值