收藏 分销(赏)

CoreSeekMysql安装及测试ForMacOSX.doc

上传人:天**** 文档编号:11397449 上传时间:2025-07-21 格式:DOC 页数:19 大小:38.04KB 下载积分:8 金币
下载 相关 举报
CoreSeekMysql安装及测试ForMacOSX.doc_第1页
第1页 / 共19页
CoreSeekMysql安装及测试ForMacOSX.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
CoreSeekMysql安装及测试ForMacOSX CoreSeek Mysql 安装及测试 For Mac OS X(中文分词及中文全文检索) CoreSeek安装比较麻烦,官方手册对此的支持并不算很好。CoreSeek是基于Sphinx的中文的分词和全文检索软件。本文是在MAC OS X系统下安装和调试CoreSeek。 安装过程中报错如果是警告warning则忽略,如果是错误error,则必须要处理。 CoreSeek是支持三种数据来源的,一种是众所周知的Mysql,一种是XML文件,另一种是Python。而Python则是万能数据类型。在本CoreSeek安装测试教程中只示例数据源是XML文件和MYSQL。 官方手册地址: 一、设置环境变量 $ export PATH=/usr/local/bin:$PATH $ export LC_ALL=zh_CN.UTF-8 $ export.UTF-8 二、安装依赖库:m4、autoconf、automake、libtool。 注意:不要brew install 来安装,因为对安装的库的版本有要求。 $ curl -O -L 1.4.13.tar.gz $ tar -xzvf m4-1.4.13.tar.gz $ cd m4-1.4.13 $ sudo ./configure --prefix=/usr/local/opt $ sudo make $ sudo make install $ cd .. $ curl -O -L $ tar -xzvf autoconf-2.65.tar.gz $ cd autoconf-2.65 $ sudo ./configure --prefix=/usr/local/opt $ sudo make $ sudo make install $ cd .. $ curl -O -L $ tar xzvf automake-1.11.tar.gz $ cd automake-1.11 $ ./configure --prefix=/usr/local/opt $ sudo make $ sudo make install $ cd .. $ curl -O -L 2.2.6b.tar.gz $ tar xzvf libtool-2.2.6b.tar.gz $ cd libtool-2.2.6b $ sudo ./configure --prefix=/usr/local/opt $ sudo make $ sudo make install $ cd .. 三、安装Mysql。 1、mysql 的安装自行安装 2、查找mysql头文件地址和库文件地址。我用 brew install mysql 安装的Mysql,头文件地址和库文件地址分别是/usr/local/Cellar/mysql/5.6.17_1/include/mysql 和 /usr/local/Cellar/mysql/5.6.17_1/lib。 头文件地址就是mysql.h所在的目录,库文件地址就是libmysqlclient.a所在的目录。 四、下载Coreseek。 $ curl -O -L 3.2.14.tar.gz $ tar xzvf coreseek-3.2.14.tar.gz $ cd coreseek-3.2.14 在coreseek-3.2.14文件夹下有mmseg和csft和testpack。mmseg是分词服务,csft是CoreSeek的核心服务,testpack是测试用例。 五、安装mmseg $ cd mmseg-3.2.14 $ sudo ./bootstrap $ sudo ./configure --prefix=/usr/local/opt/mmseg3 $ sudo make $ sudo make install $ cd .. 在make的时候,可能会报错,如下 from css/ThesaurusDict.cpp:6: ../src/css/ThesaurusDict.h:12:17: error: expected namespace name using namespace __gnu_cxx; ^ css/ThesaurusDict.cpp:79:15: warning: result of comparison against a string literal is unspecified (use strncmp instead) [-Wstring-compare] if ( == "-") { ^ ~~~ css/ThesaurusDict.cpp:116:15: warning: result of comparison against a string literal is unspecified (use strncmp instead) [-Wstring-compare] if ( != "-") { ^ ~~~ 2 warnings and 1 error generated. make[2] : *** [ThesaurusDict.lo] Error 1 make[1]: *** [install-recursive] Error 1 这个时候make进程已经终止。原因是因为编译器版本太高导致的,修改方法:1是降低编译器版本,反正我打死也不愿意。方法2如下: vim src/css/ThesaurusDict.h ###在头部找到:#include <string> ###再其下加入一行代码: #include <ext/hash_map> 修改完后保存退出,继续重新sudo make一下,就没有error级错误了,然后sudo make install即可。 六、安装coreseek $ cd csft-3.2.14 $ sudo sh buildconf.sh $ sudo ./configure --prefix=/usr/local/opt/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/opt/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/opt/mmseg3/lib/ --with-mysql --with-mysql-includes=/usr/local/Cellar/mysql/5.6.17_1/include/mysql --with-mysql-libs=/usr/local/Cellar/mysql/5.6.17_1/lib $ sudo make $ sudo make install $ cd .. 在./configure时,参数--with-mysql-includes是mysql头文件位置,--with-mysql-libs是mysql库文件位置,请在本CoreSeek安装教程第三步所记录的mysql头文件地址和库文件地址,替换。 在make时,可能又会出现error级的错误,如果出现make程序是停止运行的,必须要修改。错误提示如下: phinxexpr.cpp:1047:11: error: use of undeclared identifier 'ExprEval' T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc ... 解决方法:修改源代码。 vim src/sphinxexpr.cpp 将T val = ExprEval( this->m_pArg, tMatch )替换为T val = this->ExprEval ( this->m_pArg, tMatch )。 就是加了个“this->”,是把这个文件中所有的ExprEval()函数都修改了,有三四个吧。 修改后保存退出,重新sudo make,然后sudo make install即可。 七、测试XML数据 $ cd testpack #测试编码是否正确显示中文,如果不是中文则请看本CoreSeek安装测试教程第一步 $ cat var/test/test.xml # 测试mmseg分词的效果 $ /usr/local/opt/mmseg3/bin/mmseg -d /usr/local/opt/mmseg3/etc var/test/test.xml # 建立检索的索引。 $ /usr/local/opt/coreseek/bin/indexer -c etc/csft.conf --all #全文搜索“网络搜索” $ /usr/local/opt/coreseek/bin/search -c etc/csft.conf 网络搜索 如果在建立检索的索引出错,FATAL: failed to lock var/data/xml.spl: Resource temporarily unavailable, will not index. Try --rotate option. 则修改为 $ /usr/local/opt/coreseek/bin/indexer -c etc/csft.conf --all --rotate 八、测试MYSQL数据源 cd testpack 1、修改配置文件,文件位于testpack/etc/csft_mysql.conf vim etc/csft_mysql.conf 我的csft_mysql.conf文件如下:记得把mysql 的sql_host,sql_user,sql_pass,sql_db,sql_port修改为自己的,并且把路劲都修改为你自己的路径。 #MySQL数据源配置,详情请查看: #请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库 #源定义 source mysql { type = mysql sql_host = localhost sql_user = root sql_pass = 8823150 sql_db = test sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents #sql_query第一列id需为整数 #title、content作为字符串/文本字段,被全文索引 sql_attr_uint = group_id #从SQL读取到的值必须为整数 sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性 sql_query_info_pre = SET NAMES utf8 #命令行查询时,设置正确的字符集 sql_query_info = SELECT * FROM documents WHERE id=$id #命令行查询时,从数据库读取原始数据信息 } #index定义 index mysql { source = mysql #对应的source名称 path = /Users/lane/coreseek-3.2.14/testpack/var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... docinfo = extern mlock = 0 morphology = none min_word_len = 1 html_strip = 0 #中文分词配置,详情请查看: charset_dictpath = /usr/local/opt/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾 #charset_dictpath = etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/... charset_type = zh_cn.utf-8 } #全局index定义 indexer { mem_limit = 128M } #searchd服务定义 searchd { listen = 9312 read_timeout = 5 max_children = 30 max_matches = 1000 seamless_rotate = 0 preopen_indexes = 0 unlink_old = 1 pid_file = /Users/lane/coreseek-3.2.14/testpack/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... log = /Users/lane/coreseek-3.2.14/testpack/var/log/searchd_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... query_log = /Users/lane/coreseek-3.2.14/testpack/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... } 2、给mysql导入测试数据 mysql的测试数据我们用的是test数据库,documents数据表。请自行确保test数据库存在,我们一起来建documents表,这个表的结构和数据都是由CoreSeek提供的,在testpack/var/test/documents.sql mysql -u root -p #输入密码 #看看,数据库test在不在 mysql > show databases; #如果test库不在请创建 mysql > create database test; use test; #导入数据 source /Users/lane/coreseek-3.2.14/testpack/var/test/documents.sql 3、测试: $ cd testpack # 建立检索的索引 $ /usr/local/opt/coreseek/bin/indexer -c etc/csft_mysql.conf --all #全文搜索“网络搜索” $ /usr/local/opt/coreseek/bin/search -c etc/csft_mysql.conf 网络搜索 如果提示有错误,请检查csft_mysql.conf的路径、mysql的配置等信息是否正确。 九、测试PHP+MYSQL 1、先启动服务 /usr/local/opt/coreseek/bin/searchd -c etc/csft.conf 2、PHP文件 <?php require ( "/Users/lane/coreseek-3.2.14/testpack/api/sphinxapi.php" ); $cl = new SphinxClient (); $cl->SetServer ( '127.0.0.1', 9312); $cl->SetConnectTimeout ( 3 ); $cl->SetArrayResult ( true ); $cl->SetMatchMode ( SPH_MATCH_ANY); $res = $cl->Query ( '网络搜索', "*" ); print_r($cl); print_r($res); 我在Linux折腾了一天没有搞定,在MAC搞了半天搞定了。等搞定Linux后再发Linux的。 19 / 19
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服