`
kobe学java
  • 浏览: 250454 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

(转载)sphinx使用介绍

 
阅读更多

原文地址:http://www.orczhou.com/index.php/2009/08/sphinx-1/

到今天为止校内论坛Discuz)上的主题数量已经到达了40w,所有回复约500W。随着数据量的增大,DZ自带的站内搜索给数据库的带来的压力越来越大,甚至会导致数据库停止服务(MyISAM在SLOW Query和update并发问题)。取代站内搜索,我们使用了google的自定义搜索服务,google的速度非常快,但是对于论坛来说,Google不能返回实时的搜索结果,而且也无法定制搜索(如安装标题、作者、内容)。

所以,我们将尝试使用sphinx来解决这个问题。先看看sphinx是怎样工作的:

sphinxII

  1. sphinx有两个主要进程indexer和searchd。indexer,正如其名,她的任务是从数据库(或者其他的数据源)收集原始的数 据,然后建立相应的索引。searchd则是通过读取indexer建立的索引来响应客户端的请求。如果用图书馆来打比方的话,一个是按照索书号整理数目 的工作人员,一个是帮你从书架上取书的人。
  2. 要让sphinx为你工作的话,需要做几件事(在配置文件中完成):
    1) 告诉sphinx,数据源在哪儿(配置source,对应MySQL的话,就是填写其主机名、登录用户、密码等)
    2) 建立“索引任务”。告诉indexer针对数据源的哪一部分建立索引,建立索引时数据源的编码、最小索引长度等细节信息
  3. 执行indexer,完成前面配置文件中的“索引任务”;启动searchd服务。

这样你的应用就可以通过sphinx提供的API来搜索数据库中的数据了,sphinx会为你返回对应数据的主键。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics