sphinx教程3__shpinx工作过程
2014-06-25 11:11
302 查看
到今天为止校内论坛(Discuz)上的主题数量已经到达了40w,所有回复约500W。随着数据量的增大,DZ自带的站内搜索给数据库的带来的压力越来越大,甚至会导致数据库停止服务(MyISAM在SLOW
Query和update并发问题)。取代站内搜索,我们使用了google的自定义搜索服务,google的速度非常快,但是对于论坛来说,Google不能返回实时的搜索结果,而且也无法定制搜索(如安装标题、作者、内容)。
所以,我们将尝试使用sphinx来解决这个问题。先看看sphinx是怎样工作的:
sphinx有两个主要进程indexer和searchd。indexer,正如其名,她的任务是从数据库(或者其他的数据源)收集原始的数据,然后建立相应的索引。searchd则是通过读取indexer建立的索引来响应客户端的请求。如果用图书馆来打比方的话,一个是按照索书号整理数目的工作人员,一个是帮你从书架上取书的人。
要让sphinx为你工作的话,需要做几件事(在配置文件中完成):
1) 告诉sphinx,数据源在哪儿(配置source,对应MySQL的话,就是填写其主机名、登录用户、密码等)
2) 建立“索引任务”。告诉indexer针对数据源的哪一部分建立索引,建立索引时数据源的编码、最小索引长度等细节信息
执行indexer,完成前面配置文件中的“索引任务”;启动searchd服务。
这样你的应用就可以通过sphinx提供的API来搜索数据库中的数据了,sphinx会为你返回对应数据的主键。
Query和update并发问题)。取代站内搜索,我们使用了google的自定义搜索服务,google的速度非常快,但是对于论坛来说,Google不能返回实时的搜索结果,而且也无法定制搜索(如安装标题、作者、内容)。
所以,我们将尝试使用sphinx来解决这个问题。先看看sphinx是怎样工作的:
sphinx有两个主要进程indexer和searchd。indexer,正如其名,她的任务是从数据库(或者其他的数据源)收集原始的数据,然后建立相应的索引。searchd则是通过读取indexer建立的索引来响应客户端的请求。如果用图书馆来打比方的话,一个是按照索书号整理数目的工作人员,一个是帮你从书架上取书的人。
要让sphinx为你工作的话,需要做几件事(在配置文件中完成):
1) 告诉sphinx,数据源在哪儿(配置source,对应MySQL的话,就是填写其主机名、登录用户、密码等)
2) 建立“索引任务”。告诉indexer针对数据源的哪一部分建立索引,建立索引时数据源的编码、最小索引长度等细节信息
执行indexer,完成前面配置文件中的“索引任务”;启动searchd服务。
这样你的应用就可以通过sphinx提供的API来搜索数据库中的数据了,sphinx会为你返回对应数据的主键。
相关文章推荐
- 学习笔记之编译器的工作过程 | 菜鸟教程
- puppet安装使用教程(四)--puppet的工作原理及工作过程
- jQuery 入门教程(20): jQuery UI 基本工作过程
- jQuery 入门教程(20): jQuery UI 基本工作过程
- VBS教程:VBScript 基础-VBScript 过程
- MySQL 5.0 新特性教程 存储过程:(四)
- 创新性应用-在工作过程中总结了SQL 2005的主要新特性-崔欣
- 工作只是过程,生活才是目标
- MySQL 5.0 新特性教程 存储过程:(三)
- 学习,研究,工作,灵感——学习过程其实是一张网 选择自 mechiland 的 Blog
- 存储过程教程(一)
- sql server教程sql存储过程和算法
- [转][改]DataAdapter工作过程详解
- 访问控制列表工作过程和执行流程
- vs2005入门 .Net2.0视频教程 之 浅尝存储过程[视频]
- 存储过程教程(二)
- oracle pl/sql语言初级教程之过程和函数
- MySQL 5.0 新特性教程 存储过程:(二)
- 存储过程初级教程
- 分享我学习js的过程 作者aircy javascript学习教程第1/3页