正如冰与火之歌中兰尼斯特家族的誓言:A Lannister always pay his debts.森爷也绝不食言前面的博文中所说过的话。虽然还没有一个人(哪怕一个也好)在我的博客里留过言或者发过评论,但是,我还是对发博文保持了比较良好的自娱自乐精神,笔耕不辍。
sphinx是一个全文搜索引擎,当然其本身并不直接支持中文的检索。因此,这里,我使用了中文改良版coreseek.
1.安装coreseek。
请百度之。
2.安装过后,我们就要对想要建立索引的表的字段建立索引了。sphinx将会进行类似于lucence的分词和建立索引的过程,最终根据用户写的配置文件来实现建立索引的过程。我们需要做的,就是写一个后缀名为conf的配置文件,放在etc目录下。这个文件的简单格式如下:
source testindexsource
{
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_attr_timestamp = addtime
}
index testindex
{
source = testindexsource
path = c:/usr/local/coreseek-4.1-win32/var/data/testindex
charset_dictpath = c:/usr/local/coreseek-4.1-win32/etc/
charset_type = zh_cn.utf-8
}
searchd
{
listen = 9312
max_matches = 1000
pid_file = c:/usr/local/coreseek-4.1-win32/var/log/searchd_mysql.pid
log = c:/usr/local/coreseek-4.1-win32/var/log/searchd_mysql.log
query_log = c:/usr/local/coreseek-4.1-win32/var/log/query_mysql.log
}
相信大家都能看懂里面的参数的意思,有几个需要说明一下的是:testindex为建立的索引的名称。testindex参数列表中的source应该与上面的source同名。serchd是coreseek提供的一个服务进程。它的服务端口号是9312。
ok。我们写完了这个配置文件,将其放入etc目录下。
然后,我们输入命令 e:\coreseek\bin\indexer --config e:\coreseek\etc\mysql.conf
--all,来建立索引。其中,以e盘开头的字符串是coreseek的安装目录。
然后,我们输入命令:e:\coreseek\bin\searchd --config e:\coreseek\etc\mysql.conf启动coreseek服务进程。
最后,我们来使用建好的索引来查找mysql数据库中的关键字。
在 web根目录下建立一个search目录(当然不在根目录也行,同样目录名也可以随取),复制E:\coreseek\api\ sphinxapi.php文件到search目录(sphinxapi.php这个是sphinx官方提供的api),开始php程序的编写。
在search目录建立一个文件,名字叫啥都行,我管它叫index.php,其内容如下:
<?php
include 'sphinxapi.php';
$sc=new SphinxClient();
$sc->SetServer("localhost",9312);
$result=$sc->Query('opera','testindex');
var_dump($result);
?>
其中,opera为我要找的关键字,testindex为配置文件中的索引名称。至此,我们就完成了使用coerseek来快速查找mysql数据库中的关键字的过程。
分享到:
相关推荐
Laravel开发-laravel-scout-sphinx 斯芬克斯搜索引擎为拉拉维尔童子军。
1、搜索引擎架构图(基于PHP+MySQL+Sphinx): 3 2、搜索引擎架构设计思路: 3 ⑴、调用方式最简化: 3 ⑵、创建索引、查询速度快: 3 ⑶、按服务类型进行分离: 4 ⑷、“主索引+增量索引”更新方式: 4 ⑸、“Ext3...
数据库 搜索引擎,通过web实现,对数据库的搜索
sphinx全文搜索引擎,支持中文分词。内置sphinx安装包及coreseek安装包
cp -R /root/builds/sphinx-0.9.7/mysqlse/* /root/builds/mysql-5.0.24/sql/sphinx 配置(configure)MySQL,启用Sphinx引擎: ./configure --with-sphinx-storage-engine 构建(build)并安装MySQL: make make ...
用Sphinx搭建MySQL中文全文搜索 包含SpinxSE引擎/配置附件及sql文件. 压缩包密码:20100525
Laravel开发-laravel-sphinx 用于sphinxql的laravel查询生成器
基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计
Discuz官方出品,搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构.doc
基于Sphinx+MySql+Python的站内搜索引擎的设计与实现.pdf
python中语音识别功能包pocketsphinx的中文识别模块。对普通话进行解析。原来官方的下载版不能直接使用,还要重命名,而且极慢。这个只要解压后放到\site-packages\pocketsphinx\model 就好了
计算机前端-向军-sphinx全文检索引擎视频教程-07 安装PHP的Sphinx扩展模块.wmv
Atom-language-sphinx.zip,atom的sphinx语法包atom中sphinx文本语言的支持,atom是一个用web技术构建的开源文本编辑器。
Sphinx搜索引擎架构与使用文档(和MySQL结合)
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,...
Thinking Sphinx - ActiveRecord/Rails的Sphinx全文搜索插件
前一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/Ruby/etc)方便调用的全文检索系统。...本文旨在提供一种便捷的方式让Sphinx在windows下安装配置以支持中文全文检索,配置部分在linux下通用。
计算机前端-向军-sphinx全文检索引擎视频教程-08 安装Samba为编写Sphinx的PHP代码做