PHP----sphinx 配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 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程序。
开始--->控制面板--->管理工具--->任务计划程序--->创建基本任务

猜你喜欢

转载自blog.csdn.net/damys/article/details/88637855