每个产品项目分配一个搜索配置,每个配置分不同的数据库或端口区分不同的产品,每个配置启动一个守户进程
配置文件project1_csft.conf示例:
#Test source source test_main { type = mysql sql_host = 192.168.1.100 sql_user = root sql_pass = 123456 sql_db = test sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query_pre = replace into index_delta select 2,'test',UNIX_TIMESTAMP() from test sql_query = SELECT SQL_NO_CACHE id, ctime,2 as type,title,alias_name FROM test where status=1 and mtime <= ( s elect max_mtime from index_delta where type='user' ) sql_attr_uint = type sql_attr_timestamp = ctime }
index test_main_idx { source = test_main path = /usr/local/coreseek/var/project1/test docinfo = extern mlock = 0 morphology = none min_word_len = 1 html_strip = 0 charset_dictpath = /usr/local/mmseg/etc/ stopwords = /usr/local/mmseg/etc/stopwords.txt charset_type = zh_cn.utf-8 charset_table = ngram_len = 0 }
#Test delta index source source test_delta : test_main { sql_query_pre = SET NAMES utf8 sql_query = SELECT SQL_NO_CACHE id as id,ctime,2 as type,title,alias_name FROM test where mtime > ( select m ax_mtime from index_delta where type='user' ) sql_attr_uint = type sql_attr_timestamp = ctime } #Test delta index index test_delta_idx : test_main_idx { source = test_delta path = /usr/local/coreseek/var/project1/test_delta }
全索引生成:
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/project1_csft.conf --all
sphinx启动:
/usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/project1_csft.conf --pidfile
sphinx停止:
/usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/project1_csft.conf --stop
根据不同业务创建不同的产品索引配置文件并启动
前端用封装的Sphinxapi.php调用不同服务器上不同产品索引文件即可