Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,提供比数据库本身更专业的搜索功能特别为MySQL也设计了一个存储引擎插件,从此抛弃模糊查询吧。
Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建100万条记录的索引只要 3、4分钟,创建1000万条记录的索引可以在50分钟内完成,而重建一次只包含最新10万条记录的增量索引只需几十秒。
一、安装
环境:centos6.5
yum install sphinx -y
默认配置路径 /etc/sphinx/ ,在该路径下,有配置文件sphinx.conf,看看我的配置
# 数据源,这里配置的是mysql
source src1
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = beego_blog
sql_port = 3306 # optional, default is 3306
# 创建索引时候,从数据库查询数据的SQL
sql_query = \
SELECT id, userid, UNIX_TIMESTAMP(posttime) AS posttime, title, content, tags \
FROM tb_post
sql_attr_uint = userid
sql_attr_timestamp = posttime
sql_query_info = SELECT * FROM tb_post WHERE id=$id
}
# 索引1
index test1
{
# 指定数据源
source = src1
# 索引文件路径
path = /var/lib/sphinx/test1
# 储文档信息的方式 extern
docinfo = extern
charset_type = sbcs
}
# 索引2
index testrt
{
type = rt
rt_mem_limit = 32M
path = /var/lib/sphinx/testrt
charset_type = utf-8
rt_field = title
rt_field = content
rt_attr_uint = userid
}
indexer
{
mem_limit = 32M
}
searchd
{
listen = 0.0.0.0:9312 # 索引对外提供服务的地址
listen = 9306:mysql41
log =