网站地图    收藏   

主页 > 后端 > php资料库 >

在Windows7上安装coreseek3.2同时在PHP下简单实现步骤

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 这两天安装了 coreseek+sphinx服务 ,前面装的是比较低版本的,再试了一下官网比较稳定一个版本 1.首先下载:因为包有点大,就不在这里增加链接了,需要可以到官网下载 coreseek-3.2.14-...

这两天安装了coreseek+sphinx服务,前面装的是比较低版本的,再试了一下官网比较稳定一个版本
1.首先下载:因为包有点大,就不在这里增加链接了,需要可以到官网下载 coreseek-3.2.14-win32.zip
2.将你下载的.zip文件解压
3.把解压成的文件放到D:\web目录下,重命名为sphinx(目录路径可以根据自己的需要来设定)

在Windows7上安装coreseek3.2同时在PHP下简单实现步骤1

4.复制etc下csft_mysql.conf文件到bin目录下并重命名csft.conf
5.根据自己的本地环境,修改csft.conf配置:
这是我操作的配置:
 

PHP Code复制内容到剪贴板
#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/
#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库

#源定义
source documents
{
type = mysql

sql_host = localhost
sql_user = root
sql_pass =
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 documents
{
source = documents #对应的source名称
path = d:/web/sphinx/var/data/documents #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0

#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
charset_dictpath = d:/web/sphinx/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 = d:/web/sphinx/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log = d:/web/sphinx/var/log/searchd_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log = d:/web/sphinx/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
}

6.在本地建立test数据库,导入var/test下documents.sql
7.在dos下进入sphinx/bin目录,建立索引
index.php --all(也可以指定配置文件:indexer.exe --config d:/web/sphinx/bin/csft.conf documents )

在Windows7上安装coreseek3.2同时在PHP下简单实现步骤2
 

8.search.exe twitter
显示查找成功,在dos下查找中文是不支持的,所以查找中文我们在PHP下测试

在Windows7上安装coreseek3.2同时在PHP下简单实现步骤3
 

9.把search定义成守护进程服务
searchd.exe --config d:/web/sphinx/bin/csft.conf --install
在window下就有了一个为searchd的服务,可以在上面点击启动停止操作(删除window服务命令
sc delete "服务名" (如果服务名中间有空格,就需要前后)
10.把sphinx下的api文件夹拷贝到web目录下,如无需其它测试文件直接把sphinxapi.php复制过来便可
新建一个test.php文件,
复制粘贴以下代码:

PHP Code复制内容到剪贴板
require 'api/sphinxapi.php';
$host = "localhost";
$port = 9312;
$nowTime = time();
$sc = new SphinxClient(); // 实例化Api

$sc->setServer($host, $port); // 设置服务端,第一个参数sphinx服务器地址,第二个sphinx监听端口
$res = $sc->query('浏览速度'); // 执行查询,第一个参数查询的关键字,第二个查询的索引名
if (!$res) {
$error = $sc->GetLastError();
var_dump($error);exit;
}
$ids = join(',',array_keys($res['matches']));
print_r($ids); // 获取主键
exit;
结果以下:

在Windows7上安装coreseek3.2同时在PHP下简单实现步骤4
 

操作成功(如遇到相关报错问题可以参考上一篇文章

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论