您的位置:首页 > 其它

sphinx的使用1-创建索引

2014-09-07 00:00 375 查看
由于现在低版本的5.6以前的版本,并不支持全文索引,直到5.6版本才支持全文索引(mysiam),但是对于中文网站来说,mysql还不支持基于中文的全文索引.但是通过使用sphinx可以解决中文的问题.

shpinx支持各种数据库 如mysql oracle等等其他数据库,shpinx本身不支持中文,但是可以使用

添加中文包,使之能够支持中文

coreseek-3.2.14-win32就是一款基于sphinx开发的一款sphinx全文索引

在使用sphinx时 首先需要拷贝etc/目录下的csft_mysql.conf 拷贝到其他目录 一般是coreseek根目录 并且改名为

sphinx.conf

配置数据源部分

source a67movie
{
type               = mysql        # 数据库类型
sql_host           = localhost
sql_user           = root
sql_pass           =              # 数据库的密码
sql_db             = dedecmsv57utf8sp1  # 创建索引的数据库
sql_port           = 3306
# 在取数据之前要执行的SQL语句
sql_query_pre      = SET NAMES utf8
# 主查询:最重要的一个属性:一条SQL语句,这SQL语句取出的数据就是要创建索引的数据
# 要为哪些数据创建索引就通过这个SQL把数据取出来
# 要求:第一个字段必须是非负、非空、唯一数字,而且必须叫做ID
# 一个数据源中只能有一个主查询
sql_query          = SELECT a.id,a.title,b.juqing FROM dede_archives a LEFT JOIN dede_addon17 b ON a.id=b.aid
}


配置索引文件存放路径

# 配置生成的索引文件
# 根据:与一个数据源相对应
# 语法:index 名字
index a67movie
{
source          = a67movie             #对应的source名称
# 生成的索引文件存放的目录
# 要求:目录中不能有中文
# 注意:目录中最后一个是文件的名字
path            = G:\cz\sphinx\coreseek-3.2.14-win32\var\data\a67movie
docinfo         = extern
mlock           = 0
morphology      = none
min_word_len    = 1
html_strip      = 0
# 中文包所在的目录
charset_dictpath = G:\cz\sphinx\coreseek-3.2.14-win32\etc
charset_type    = zh_cn.utf-8
}


全局index定义

# 配置创建索引时使用内容量、内存越快建索引越快
indexer
{
mem_limit            = 128M
}


searchd服务定义

#searchd服务定义
searchd
{
listen              = 9312
read_timeout        = 5
max_children        = 30
# 返回数据最大的数量:最多只返回查询到的1000条记录
max_matches            = 1000
seamless_rotate        = 0
preopen_indexes        = 0
unlink_old            = 1
pid_file = G:\cz\sphinx\coreseek-3.2.14-win32\var\log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log = G:\cz\sphinx\coreseek-3.2.14-win32\var\log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log = G:\cz\sphinx\coreseek-3.2.14-win32\var\log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
}


执行sphinx下的一个程序

在命令行执行:indexer.exe  -c   sphinx配置文件  -all
在命令行执行:indexer.exe  -c   sphinx配置文件  指定配置文件中索引的名字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: