1, 首先创建一个表用来储存主索引和增量索引的id值
CREATE TABLE IF NOT EXISTS `sph_counter` (
`s_id` int(10) unsigned NOT NULL auto_increment,
`p_id` int(11) NOT NULL,
PRIMARY KEY (`s_id`)
) ;
2,改sphinx配置文件
#主数据源
source main
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = root
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_sock = /tmp/mysql.sock
sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF
sql_query_pre = replace into sph_coner select 1,max(id) from post
sql_query = select id,title,content from post where id<= (select p_id from sph_coner where s_id=1)
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM post WHERE id=$id
}
增量数据源
source delta : main
{
sql_query_pre = SET NAMES utf8
sql_query = select id,title,content from post where id >= (select p_id from sph_coner where s_id=1)
}
#主数据索引
index main
{
source = main
path = /usr/local/sphinx/var/data/main
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
charset_type = zh_cn.utf-8
charset_dictpath = /usr/local/mmseg/etc/
html_strip = 0
}
#增量数据索引
index delta : main
{
source = delta
path = /usr/local/sphinx/var/data/delta
}
#索引器
indexer
{
mem_limit =256M
}
#客户端检索进程
searchd
{
log = /usr/local/sphinx/var/log/searchd.log
query_log = /usr/local/sphinx/var/log/query.log
read_timeout = 5
client_timeout = 300
max_children = 30
pid_file = /usr/local/sphinx/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
mva_updates_pool = 1M
max_packet_size = 8M
max_filters = 256
max_filter_values = 4096
}
# --eof--
3,测试sphinx时时索引
INSERT INTO `post` (`title`, `content`) VALUES
('my title', 'my content'),
<span style="white-space: pre;"> 执行 </span>/usr/local/coreseek/bin/indexer delta –rotate
./search my title