Sphinx+PHP+Mysql高效搜索web端搭建(windows)
2017-03-12 10:50
666 查看
序
一安装配置wampserver
二下载coreseek
1安装coreseek
2测试coreseek
三配置及其启动
最近几天给朋友搭建了个社工库,框架是Sphinx+PHP+MySQL。但是源码附带文档写的很烂,而且是Linux下的,
所以找了些相关资料配置了下,写出来分享给大家。大致源码效果图如下(可自行搜索源码下载):
代码资源截图如下:
这里只提供配置,不提供数据,因为我也没有,相当于技术研究。
简单介绍下吧,Sphinx是一个基于SQL的全文检索引擎,在数据库数据量比较大的时候可以派上用场,检索效率高,具体概念百度百科上也有。而coreseek是基于sphinx的一个框架,并且支持中文分词库。也就是说装coreeek就够了(下图中的描述也很清楚,coreseek里面已经包含了mmseg,sphinxse,php的接口,注意mysql其实不一定非要是5.5.15版本,这个就不用多说了),官网下载连接如下:
传送门
注意:本文可能需要一定从事编程行业的基础知识,纯小白需要自己查清楚这些概念。
环境:windows7。
wampserver集成了appache,php,mysql,能够比较便捷的搭建web端,概念就不多说配置方法自行百度,要能跑起web来,有机会再写吧。
比较懒,直接丢个连接(随便找的连接,如果需要自己找更好):
传送门
配置好之后,把代码放到你配置的wamserver的web目录下(忽略txt文件夹,style.css,test.php这几个是我自己改的):
安装navicat(连接mysql的工具),自行从网上去查找下载破解版,安装完成后要能连上,连上之后,
运行以下命令,创建mysql用户和数据库:
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
下载好coreseek解压到你想要的目录下,就算安装好了(忽略start.cm
d,那是我写的启动脚本):
图里已经说得很清楚了,那我就不在多说:
测试方法其实不是很想多说,但有助于配置,引用下别人的
传送门:
第1步:在mysql导入测试数据:
随便建立个用户表,插几条数据
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
第2步:建立配置文件:
在之前的安装的coreseek-4.1-win32\etc目录下建立一个test.conf,将其内容改为下面这些:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
大多数参数挺简单,就不多说,理解下。
第3步:生成索引:
打开cmd
输入:
E:\coreseek-4.1-win32\bin\indexer –c E:\coreseek-4.1-win32\etc\test.conf –all 生成索引。
第4步:启动Sphinx:
同样命令行下 :
E:\coreseek-4.1-win32\bin\searchd –c E:\coreseek-4.1-win32\etc\test.conf
修改mysqlcsft.conf为如下(当然数据库,用户名这些自己看着替换)并放在E:\coreseek-4.1-win32\etc目录下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
在E:\coreseek-4.1-win32目录下创建start.cmd脚本,以后启动就通过它来
如图:
内容如下:
2
3
1
2
3
修改index.php,把mysql密码等数据修改过来:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
基本上就都修改完成了,可以直接启动,先启动wampserver,然后双击start.cmd启动coreseek:
这样就完成了。慢慢导入数据吧。
文章来源:http://blog.csdn.net/zy19940906/article/details/60467450
一安装配置wampserver
二下载coreseek
1安装coreseek
2测试coreseek
三配置及其启动
最近几天给朋友搭建了个社工库,框架是Sphinx+PHP+MySQL。但是源码附带文档写的很烂,而且是Linux下的,
所以找了些相关资料配置了下,写出来分享给大家。大致源码效果图如下(可自行搜索源码下载):
代码资源截图如下:
序
这里只提供配置,不提供数据,因为我也没有,相当于技术研究。 简单介绍下吧,Sphinx是一个基于SQL的全文检索引擎,在数据库数据量比较大的时候可以派上用场,检索效率高,具体概念百度百科上也有。而coreseek是基于sphinx的一个框架,并且支持中文分词库。也就是说装coreeek就够了(下图中的描述也很清楚,coreseek里面已经包含了mmseg,sphinxse,php的接口,注意mysql其实不一定非要是5.5.15版本,这个就不用多说了),官网下载连接如下:
传送门
注意:本文可能需要一定从事编程行业的基础知识,纯小白需要自己查清楚这些概念。
环境:windows7。
一、安装配置wampserver:
wampserver集成了appache,php,mysql,能够比较便捷的搭建web端,概念就不多说配置方法自行百度,要能跑起web来,有机会再写吧。 比较懒,直接丢个连接(随便找的连接,如果需要自己找更好):
传送门
配置好之后,把代码放到你配置的wamserver的web目录下(忽略txt文件夹,style.css,test.php这几个是我自己改的):
安装navicat(连接mysql的工具),自行从网上去查找下载破解版,安装完成后要能连上,连上之后,
运行以下命令,创建mysql用户和数据库:
-- 创建数据库 CREATE DATABASE `Worker`; -- 创建用户和角色 -- CREATE USER 'ACCOUNT_ACC'@'localhost' IDENTIFIED BY '7ujm*IK<'; -- GRANT SELECT, INSERT, UPDATE ON `KC_ACCOUNT`.* TO 'ACCOUNT_ACC'@'localhost'; -- 方式二 GRANT USAGE ON *.* TO 'ygg'@'localhost' IDENTIFIED BY '654321'; GRANT SELECT, INSERT, UPDATE , DELETE, CREATE ON `Worker`.* TO 'ygg'@'localhost';1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
二、下载coreseek:
1、安装coreseek:
下载好coreseek解压到你想要的目录下,就算安装好了(忽略start.cm d,那是我写的启动脚本):
图里已经说得很清楚了,那我就不在多说:
2、测试coreseek:
测试方法其实不是很想多说,但有助于配置,引用下别人的 传送门:
第1步:在mysql导入测试数据:
随便建立个用户表,插几条数据
use worker; DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` int(9) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(255) default NULL, `password` varchar(255) default NULL, `email` varchar(255) default NULL, KEY `username` (`username`), KEY `email` (`email`) PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; -- ---------------------------- -- Records of users -- ---------------------------- INSERT INTO `users` VALUES (1,'acn', '123456', '617925118@qq.com');1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
第2步:建立配置文件:
在之前的安装的coreseek-4.1-win32\etc目录下建立一个test.conf,将其内容改为下面这些:
source mysql { type = mysql sql_host = localhost #数据库地址 sql_user = ygg #数据库用户名 sql_pass = 654321 #数据库密码 sql_db = worker #数据库名 sql_port = 3306 #端口号 sql_query_pre = SET NAMES utf8 #设置字符集 sql_query = SELECT id,username,email FROM members #sql语句 sql_attr_timestamp = addtime } index mysql { source = mysql path = E:/coreseek-4.1-win32/var/data/test #索引目录 charset_dictpath = E:/coreseek-4.1-win32/etc/ charset_type = zh_cn.utf-8 #编码 } searchd { listen = 9312 #监听端口 max_matches = 1000 #最大查询数 pid_file = E:/coreseek-4.1-win32/var/log/searchd_mysql.pid log = E:/coreseek-4.1-win32/var/log/searchd_mysql.log query_log = E:/coreseek-4.1-win32/var/log/query_mysql.log }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
大多数参数挺简单,就不多说,理解下。
第3步:生成索引:
打开cmd
输入:
E:\coreseek-4.1-win32\bin\indexer –c E:\coreseek-4.1-win32\etc\test.conf –all 生成索引。
第4步:启动Sphinx:
同样命令行下 :
E:\coreseek-4.1-win32\bin\searchd –c E:\coreseek-4.1-win32\etc\test.conf
三、配置及其启动:
修改mysqlcsft.conf为如下(当然数据库,用户名这些自己看着替换)并放在E:\coreseek-4.1-win32\etc目录下:source spdb1 { type = mysql sql_host = 127.0.0.1 sql_user = ygg sql_pass = 654321 sql_db = worker sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT `id`, 1 AS table_id, `username`, `email`, `password` FROM spdb1 sql_attr_uint = table_id #从SQL读取到的值必须为整数 #sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性 sql_query_info_pre = SET NAMES utf8 #命令行查询时,设置正确的字符集 sql_query_info = SELECT * WHERE ID=$id #命令行查询时,从数据库读取原始数据信息 } source spdb2 : spdb1 { sql_query = SELECT `id`, 2 AS table_id, `username`, `email`, `password` FROM spdb2 } source spdb3 : spdb1 { sql_query = SELECT `id`, 3 AS table_id, `username`, `email`, `password` FROM spdb3 } source spdb4 : spdb1 { sql_query = SELECT `id`, 4 AS table_id, `username`, `email`, `password` FROM spdb4 } source spdb5 : spdb1 { sql_query = SELECT `id`, 5 AS table_id, `username`, `email`, `password` FROM spdb5 } #index定义 index spdb1 { source = spdb1 #对应的source名称 path = E:/coreseek-4.1-win32/var/data/spdb1 #请修改为实际使用的绝对路径例如:/usr/local/coreseek/var/... docinfo = extern mlock = 0 morphology = none min_word_len = 1 ondisk_dict = 1 html_strip = 0 #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/ charset_dictpath = E:/coreseek-4.1-win32/etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/... charset_type = zh_cn.utf-8 enable_star = 0 #不使用通配符,默认不启用,可以不写 min_infix_len=1 #使用中缀索引,并且最小索引为1,关于该项作用不知者可以查询手册 infix_fields= username,email #因为中缀索引会使索引量急剧膨胀,所以最好选择你认为最主要的少量几个字段做中缀索引。(模糊查询) } index spdb2 : spdb1 { source = spdb2 path = E:/coreseek-4.1-win32/var/data/spdb2 } index spdb3 : spdb1 { source = spdb3 path = E:/coreseek-4.1-win32/var/data/spdb3 } index spdb4 : spdb1 { source = spdb4 path = E:/coreseek-4.1-win32/var/data/spdb4 } index spdb5 : spdb1 { source = spdb5 path = E:/coreseek-4.1-win32/var/data/spdb5 } #全局index定义 indexer { mem_limit = 512M #默认32M,不要太大,否则会报错 } #searchd服务定义 searchd { listen = 9312 #查询服务监听端口,开启了才会工作 read_timeout = 5 #超时 max_children = 30 #最大进程 max_matches = 1000 #返回1000条 seamless_rotate = 0 preopen_indexes = 0 unlink_old = 1 pid_file = E:/coreseek-4.1-win32/var/log/searchd.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... log = E:/coreseek-4.1-win32/var/log/searchd.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... query_log = E:/coreseek-4.1-win32/var/log/query.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... binlog_path = #关闭binlog日志 compat_sphinxql_magics = 0 }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
在E:\coreseek-4.1-win32目录下创建start.cmd脚本,以后启动就通过它来
如图:
内容如下:
@SET path=.;bin;%path% @indexer -c etc\mysqlcsft.conf --all @searchd -c etc\mysqlcsft.conf1
2
3
1
2
3
修改index.php,把mysql密码等数据修改过来:
// 返回结果设置 $cl->SetServer('127.0.0.1', 9312); $cl->SetConnectTimeout(3); $cl->SetArrayResult(true); // 设置是否全文匹配 /* if (!empty($_GET) && !empty($_GET['f'])) { $cl->SetMatchMode(SPH_MATCH_ANY); } */ //$cl->SetMatchMode(SPH_MATCH_ANY);//设置为任意一项匹配 $cl->SetMatchMode(SPH_MATCH_PHRASE);//类似like if (!empty($_GET) && !empty($_GET['p'])) { $p = !intval(trim($_GET['p'])) == 0 ? intval(trim($_GET['p'])) - 1 : 0; $p = $p * 20; // 我在sed.conf 设置了最大返回结果数1000。但是我在生成页码的时候最多生成20页,我想能满足大部分搜索需求了。 // 以下语句表示从P参数偏移开始每次返回20条。 $cl->setLimits($p, 20); } else { $cl->setLimits(0, 20); } $res = $cl->Query("$Keywords", "*"); //var_dump($res); @mysql_connect("127.0.0.1", "ygg", "654321"); //数据库账号密码 mysql_select_db("worker"); //数据库库名名 mysql_query("set names utf8"); $tables = ['spdb1' ,'spdb2','spdb3','spdb4','spdb5']; //把表名放入数组1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
基本上就都修改完成了,可以直接启动,先启动wampserver,然后双击start.cmd启动coreseek:
这样就完成了。慢慢导入数据吧。
文章来源:http://blog.csdn.net/zy19940906/article/details/60467450
相关文章推荐
- Sphinx+PHP+Mysql高效搜索web端搭建(windows)
- 使用Microsoft Web Platform Installer在windows平台搭建IIS+PHP+MySQL开发环境
- Windows下Apache+PHP+MySQL搭建web服务器
- Windows7/8搭建web(Apache+PHP+MySQL)开发环境
- Windows下Apache+PHP+MySQL搭建web服务器
- Windows下搭建Apache+PHP+MySQL平台
- Windows、Apache、Mysql和Php平台搭建
- win环境20分钟搭建php+sql服务器Apache+php+mysql在windows下的安装与配置图解
- [转载]搭建Windows下PHP MySQL IIS安全平台 (5)
- PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程
- Windows下新手搭建Apache+php+mysql教程
- windows环境下的PHP+Apache+MySql的环境搭建
- 飞飞实验室:CentOS 5.3快速搭建Apache+PHP5+MySQL完美Web服务器(LAMP)
- Windows 7下,搭建PHP开发环境(Apache,PHP,ZendOptimizer,MySQL,Zend)
- windows+Apache+MySQL+PHP+BBS+PHPmyAdmin的搭建步骤
- CentOS+Nginx+PHP+MySQL 搭建高性能的web服务器
- 简便Windows+Apache+Mysql+PHP搭建
- Establish a web server [php-mysql-apache] on Windows XP
- windows 2003 系统下搭建mysql+PHP+zend环境(二)
- Windows 2003搭建Apache PHP MySQL环境经验分享