版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/damys/article/details/88637855
#定义数据源,可以定义多个,每一个数据源对应一个index
source songs
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = 123456
sql_db = test
sql_port = 3306
sql_query_pre = SET NAMES utf8
#要注1:select 的第一字段必须为主键,名子或别名为id, 其它字段就是要创建索引字段
#通过这条SQL把要创建索引的数据取出来,说明为歌曲表中的title字段创建索引
sql_query = SELECT id,title,content FROM curl_songs
}
#定义索引,每个索引对应一个数据源
index songs
{
source = songs #对应的source名称
#索引文件存放的目录和名字,(注songs为名称)
path = D:/sphinx/songs
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#词库文件所在的目录
charset_dictpath = E:\DB_NoSQL\sphinx\coreseek-3.2.14-win32\etc
charset_type = zh_cn.utf-8
}
#全局index定义,配置indexer进程,只能有一个
indexer
{
mem_limit = 128M
}
#配置searchd服务器进程,只能有一个
searchd
{
listen = 9312
read_timeout = 5
max_children = 30
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
log = D:/sphinx/log.txt #系统日志存放的位置
query_log = D:/sphinx/query.txt #查询日志存放的位置
}
增量索引配置
合并
indexer --merge desc src [--rotate] --rotate项是可选的,如果searchd服务器已经启动,则必须要加
indexer --merge main delta --rotate #把 delta 索引合并到 main 索引上
每次向数据库中添加、修改、删除数据时,索引必须重新建。
主索引----------第一次创建的索引
增量索引-------从第二次往后创建索引的索引
把增量索引合并到主索引上去
1. 先创建a表用来存已经创建好索引的最大的记录的ID
create table a
(
id int unsigned not null,
max_id int unsigned not null default '0',
primary key (id)
)
2. 修改sphinx.conf()
#主索引源最后添加
sql_query_post = INSERT INTO a SELECT MAX(id) FROM curl_songs
source songs_zl #新增加源
sql_query = SELECT id,title,content FROM curl_songs WHERE id > (SELECT max_id FROM a)
#增量配置--把已经创建好的最后一条记录的ID更新到a表
sql_query_post = UPDATE a SET max_id = (SELECT id FROM curl_songs)
index songs_zl #新增索引
source = songs_zl
path = D:/sphinx/songs_zl
3. 创建一个xxx.bat文件,然后在这个文件中写入以下两条命令
E:\DB_NoSQL\sphinx\coreseek-3.2.14-win32\bin\indexer.exe -c D:/sphinx/sphinx.conf songs_zl
E:\DB_NoSQL\sphinx\coreseek-3.2.14-win32\bin\indexer.exe -c D:/sphinx/sphinx.conf --merge songs songs_zl --rotate
第一个命令:为增量数据创建索引文件
第二个命令:把增量的索引文件合并到主索引文件上去
4. 把这个xxx.bat文件添加到windows系统上的“计划任务”让系统定时执行这个文件中的两个任务。
扩展:如果是Linux的话,要使用 crond程序。
开始--->控制面板--->管理工具--->任务计划程序--->创建基本任务