这里,使用了“主索引”+“增量索引”合并的模式。
source picmain
{
... ....
sql_query_pre = SET NAMES utf8
sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(aid) FROM pictures
sql_query = \
SELECT aid, aname, atags, UNIX_TIMESTAMP(ctime) AS date_added, atype, nid,ntitle \
FROM pictures WHERE aid <= ( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
sql_attr_uint = nid
sql_attr_timestamp = date_added
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM pictures WHERE aid=$id
}
source picdelta : picmain
{
sql_query_pre =
sql_query = SELECT aid, aname, atags, UNIX_TIMESTAMP(ctime) AS date_added, atype, nid,ntitle \
FROM pictures WHERE aid > ( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
}
#search content
source contentmain
{
... ....
sql_query_pre = SET NAMES utf8
sql_query_pre = REPLACE INTO sph_counter SELECT 2, MAX(id) FROM articles
sql_query = SELECT id,title,tags,body,created_on,type,created_by,summary,site_id FROM articles \
WHERE state=2 AND id <= ( SELECT max_doc_id FROM sph_counter WHERE counter_id=2 )
sql_attr_uint = site_id
sql_attr_timestamp = created_on
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM articles WHERE id=$id
}
source contentdelta : contentmain
{
sql_query_pre =
sql_query = SELECT id,title,tags,body,created_on,type,created_by,summary,site_id FROM articles \
WHERE state=2 AND id > ( SELECT max_doc_id FROM sph_counter WHERE counter_id=2 )
}
# local index picture
index picmain
{
source = picmain
path = /path/to/sphinx/var/data/picmain
docinfo = extern
mlock = 0
morphology = none
min_word_len = 2
charset_type = zh_cn.utf-8
charset_dictpath = /path/to/dict
html_strip = 1
html_remove_elements = style, script
preopen = 1
}
index picdelta : picmain
{
source = picdelta
path = /path/to/sphinx/var/data/picdelta
}
#index content
index contentmain
{
source = contentmain
path = /path/to/sphinx/var/data/contentmain
docinfo = extern
mlock = 0
morphology = none
min_word_len = 2
charset_type = zh_cn.utf-8
charset_dictpath =/path/to/dict
html_strip = 1
html_remove_elements = style, script
preopen = 1
}
index contentdelta : contentmain
{
source = contentdelta
path = /path/to/sphinx/var/data/contentdelta
}
indexer
{
# memory limit, in bytes, kiloytes (16384K) or megabytes (256M)
# optional, default is 32M, max is 2047M, recommended is 256M to 1024M
mem_limit = 64M
}
searchd
{
port = 3312
log = /path/to/sphinx/var/log/searchd.log
query_log = /path/to/sphinx/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /path/to/sphinx/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}