sphinx做搜题的引擎

本文介绍了如何利用Sphinx作为搜题引擎的工作原理,包括创建数据源和索引,通过PHP调用Sphinx服务器进行查询,并设置定时任务来保持索引更新。重点讲述了Sphinx的安装、配置和与MySQL的交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sphinx原理

  • 先创建数据源。
  • 根据数据源创建索引,使用分词技术。
  • php把查询的关键词给Sphinx服务器,Sphinx根据关键词查找到关键字在mysql表里面的记录的id.Sphinx把id返回给php查询端。
  • php根据返回的id,查询mysql服务器。

安装gcc和gcc-c++

yum install gcc
yum install gcc-c++ libstdc++-devel

安装sphinx-for-chinese

下载sphinx-for-chinese.tar.gz

下载并放在/usr/local目录下并解压

tar -zxvf sphinx-for-chinese.tar.gz
./configure  --prefix=/usr/local/sphinx-for-chinese  --with-mysql
make
make install

生成字典

将文件夹中的 xdict_1.1.txt(下载xdict_1.1.tar.gz)文件丢到 /usr/local/sphinxforchinese目录下

cd /usr/local/sphinx-for-chinese
/usr/local/sphinxforchinese/bin/mkdict  xdict_1.1.txt  etc/xdict

若 /usr/local/sphinx-for-chinese/etc/ 文件夹中有xdic代表成功

重建索引

创建一个sphinx.cof文件放到 /usr/local/sphinx-for-chinese/etc 在其中配置好相关信息

source main{
	type            = mysql
    sql_host        = 127.0.0.1
    sql_user        = **********       #数据库用户名
    sql_pass        = **********   #数据库密码
    sql_db          = **********       #使用数据库
    sql_port        = 3306
    sql_sock=/tmp/mysql.sock       #mysql文件
    sql_query_pre   = SET NAMES utf8 
    sql_query       = \
	SELECT id,ti FROM tiku
}
 

source src1throttled : main{
 
}
 

index tiku{
source=main
path=/usr/local/sphinx-for-chinese/var/data/tiku
charset_type    = utf-8
chinese_dictionary = /usr/local/sphinx-for-chinese/etc/xdict
}

indexer{
mem_limit = 256M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = /usr/local/sphinx-for-chinese/var/log/searchd.log
query_log = /usr/local/sphinx-for-chinese/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/sphinx-for-chinese/log/searchd.pid
seamless_rotate= 1
preopen_indexes= 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /usr/local/sphinx-fo-rchinese/var/data

}

配置说明:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值