CoreSeek Mysql 安装与测试 For Mac OS X.docx
- 文档编号:3910514
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:8
- 大小:18.22KB
CoreSeek Mysql 安装与测试 For Mac OS X.docx
《CoreSeek Mysql 安装与测试 For Mac OS X.docx》由会员分享,可在线阅读,更多相关《CoreSeek Mysql 安装与测试 For Mac OS X.docx(8页珍藏版)》请在冰豆网上搜索。
CoreSeekMysql安装与测试ForMacOSX
CoreSeekMysql安装与测试ForMacOSX(中文分词与中文全文检索)
CoreSeek安装比较麻烦,官方手册对此的支持并不算很好。
CoreSeek是基于Sphinx的中文的分词和全文检索软件。
本文是在MACOSX系统下安装和调试CoreSeek。
安装过程中报错如果是警告warning则忽略,如果是错误error,则必须要处理。
CoreSeek是支持三种数据来源的,一种是众所周知的Mysql,一种是XML文件,另一种是Python。
而Python则是万能数据类型。
在本CoreSeek安装测试教程中只示例数据源是XML文件和MYSQL。
官方手册地址:
一、设置环境变量
$exportPATH=/usr/local/bin:
$PATH
$exportLC_ALL=zh_CN.UTF-8
$export.UTF-8
二、安装依赖库:
m4、autoconf、automake、libtool。
注意:
不要brewinstall来安装,因为对安装的库的版本有要求。
$curl-O-Lhttp:
//mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
$tar-xzvfm4-1.4.13.tar.gz
$cdm4-1.4.13
$sudo./configure--prefix=/usr/local/opt
$sudomake
$sudomakeinstall
$cd..
$curl-O-Lhttp:
//mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz
$tar-xzvfautoconf-2.65.tar.gz
$cdautoconf-2.65
$sudo./configure--prefix=/usr/local/opt
$sudomake
$sudomakeinstall
$cd..
$curl-O-Lhttp:
//mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz
$tarxzvfautomake-1.11.tar.gz
$cdautomake-1.11
$./configure--prefix=/usr/local/opt
$sudomake
$sudomakeinstall
$cd..
$curl-O-Lhttp:
//mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz
$tarxzvflibtool-2.2.6b.tar.gz
$cdlibtool-2.2.6b
$sudo./configure--prefix=/usr/local/opt
$sudomake
$sudomakeinstall
$cd..
三、安装Mysql。
1、mysql的安装自行安装
2、查找mysql头文件地址和库文件地址。
我用
brewinstallmysql
安装的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
$tarxzvfcoreseek-3.2.14.tar.gz
$cdcoreseek-3.2.14
在coreseek-3.2.14文件夹下有mmseg和csft和testpack。
mmseg是分词服务,csft是CoreSeek的核心服务,testpack是测试用例。
五、安装mmseg
$cdmmseg-3.2.14
$sudo./bootstrap
$sudo./configure--prefix=/usr/local/opt/mmseg3
$sudomake
$sudomakeinstall
$cd..
在make的时候,可能会报错,如下
fileincludedfromcss/ThesaurusDict.cpp:
6:
../src/css/ThesaurusDict.h:
12:
17:
error:
expectednamespacename
usingnamespace__gnu_cxx;
^
css/ThesaurusDict.cpp:
79:
15:
warning:
resultofcomparisonagainstastring
literalisunspecified(usestrncmpinstead)[-Wstring-compare]
if(filename=="-"){
^~~~
css/ThesaurusDict.cpp:
116:
15:
warning:
resultofcomparisonagainstastring
literalisunspecified(usestrncmpinstead)[-Wstring-compare]
if(filename!
="-"){
^~~~
2warningsand1errorgenerated.
make[2]:
***[ThesaurusDict.lo]Error1
make[1]:
***[install-recursive]Error1
这个时候make进程已经终止。
原因是因为编译器版本太高导致的,修改方法:
1是降低编译器版本,反正我打死也不愿意。
方法2如下:
vimsrc/css/ThesaurusDict.h
###在头部找到:
#include
###再其下加入一行代码:
#include
修改完后保存退出,继续重新sudomake一下,就没有error级错误了,然后sudomakeinstall即可。
六、安装coreseek
$cdcsft-3.2.14
$sudoshbuildconf.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
$sudomake
$sudomakeinstall
$cd..
在./configure时,参数--with-mysql-includes是mysql头文件位置,--with-mysql-libs是mysql库文件位置,请在本CoreSeek安装教程第三步所记录的mysql头文件地址和库文件地址,替换。
在make时,可能又会出现error级的错误,如果出现make程序是停止运行的,必须要修改。
错误提示如下:
phinxexpr.cpp:
1047:
11:
error:
useofundeclaredidentifier'ExprEval'
Tval=ExprEval(this->m_pArg,tMatch);//'this'fixesgcc...
解决方法:
修改源代码。
vimsrc/sphinxexpr.cpp
将Tval=ExprEval(this->m_pArg,tMatch)替换为Tval=this->ExprEval(this->m_pArg,tMatch)。
就是加了个“this->”,是把这个文件中所有的ExprEval()函数都修改了,有三四个吧。
修改后保存退出,重新sudomake,然后sudomakeinstall即可。
七、测试XML数据
$cdtestpack
#测试编码是否正确显示中文,如果不是中文则请看本CoreSeek安装测试教程第一步
$catvar/test/test.xml
#测试mmseg分词的效果
$/usr/local/opt/mmseg3/bin/mmseg-d/usr/local/opt/mmseg3/etcvar/test/test.xml
#建立检索的索引。
$/usr/local/opt/coreseek/bin/indexer-cetc/csft.conf--all
#全文搜索“网络搜索”
$/usr/local/opt/coreseek/bin/search-cetc/csft.conf网络搜索
如果在建立检索的索引出错,FATAL:
failedtolockvar/data/xml.spl:
Resourcetemporarilyunavailable,willnotindex.Try--rotateoption.
则修改为
$/usr/local/opt/coreseek/bin/indexer-cetc/csft.conf--all--rotate
八、测试MYSQL数据源
cdtestpack
1、修改配置文件,文件位于testpack/etc/csft_mysql.conf
vimetc/csft_mysql.conf
我的csft_mysql.conf文件如下:
记得把mysql的sql_host,sql_user,sql_pass,sql_db,sql_port修改为自己的,并且把路劲都修改为你自己的路径。
#MySQL数据源配置,详情请查看:
#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库
#源定义
sourcemysql
{
type=mysql
sql_host=localhost
sql_user=root
sql_pass=8823150
sql_db=test
sql_port=3306
sql_query_pre=SETNAMESutf8
sql_query=SELECTid,group_id,UNIX_TIMESTAMP(date_added)ASdate_added,title,contentFROMdocuments
#sql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint=group_id#从SQL读取到的值必须为整数
sql_attr_timestamp=date_added#从SQL读取到的值必须为整数,作为时间属性
sql_query_info_pre=SETNAMESutf8#命令行查询时,设置正确的字符集
sql_query_info=SELECT*FROMdocumentsWHEREid=$id#命令行查询时,从数据库读取原始数据信息
}
#index定义
indexmysql
{
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/st/documents.sql
mysql-uroot-p
#输入密码
#看看,数据库test在不在
mysql>showdatabases;
#如果test库不在请创建
mysql>createdatabasetest;
usetest;
#导入数据
source/Users/lane/coreseek-3.2.14/testpack/var/test/documents.sql
3、测试:
$cdtestpack
#建立检索的索引
$/usr/local/opt/coreseek/bin/indexer-cetc/csft_mysql.conf--all
#全文搜索“网络搜索”
$/usr/local/opt/coreseek/bin/search-cetc/csft_mysql.conf网络搜索
如果提示有错误,请检查csft_mysql.conf的路径、mysql的配置等信息是否正确。
九、测试PHP+MYSQL
1、先启动服务
/usr/local/opt/coreseek/bin/searchd-cetc/csft.conf
2、PHP文件
php
require("/Users/lane/coreseek-3.2.14/testpack/api/sphinxapi.php");
$cl=newSphinxClient();
$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的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CoreSeek Mysql 安装与测试 For Mac OS 安装 测试