我现在有几个库,每个库都用sphinx建了不同的索引
但是查询就出问题了
比如说,我要从a库中查询所需内容
那我怎么来指定要查询哪个库的索引呢
这是我的coreseek配置
#音乐源定义source music{ type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = music sql_port = 3306 sql_query_pre = set names utf8 sql_query_pre = replace into sph_counter select 1, max(id) from allmusic sql_query = select id,`name`,`singer` from allmusic where id<=(select max_id from sph_counter where counter_id=1) #sql_query第一列id需为整数#name、singer作为字符串/文本字段,被全文索引 sql_query_info_pre = set names utf8 #命令行查询时,设置正确的字符集 sql_query_info = select id,`name`,`singer` from allmusic where id=$id #命令行查询时,从数据库读取原始数据信息}# music 的增量索引source mdelta:music{ sql_query_pre = set names utf8 #sel_query_pre = replace into sph_counter select 1, max(id) from allmusic sql_query = select id,`name`,`singer` from allmusic where id<=(select max_id from sph_counter where counter_id=1)}#小说源定义source novel{ type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = novel sql_port = 3306 sql_query_pre = set names utf8 sql_query_pre = replace into sph_counter select 1, max(id) from novel sql_query = select id,`name`,`author`,`is_small` from novel where id<=(select max_id from sph_counter where counter_id=1) #sql_query第一列id需为整数#name、singer作为字符串/文本字段,被全文索引 sql_attr_uint = is_small sql_query_info_pre = set names utf8 #命令行查询时,设置正确的字符集 sql_query_info = select id,`name`,`img`,`des`,`content`,`is_small` from novel from allmusic where id=$id #命令行查询时,从数据库读取原始数据信息}source ndelta:novel{ sql_query_pre = set names utf8 #sel_query_pre = replace into sph_counter select 1, max(id) from novel sql_query = select id,`name`,`author`,`is_small` from novel where id<=(select max_id from sph_counter where counter_id=1) sql_attr_uint = is_small}#index定义index music{ source = music #对应的source名称 path = e:/sphinx/music/ #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... docinfo = extern mlock = 0 morphology = none html_strip = 0 #charset_dictpath = /usr/local/mmseg3/etc/ #bsd、linux环境下设置,/符号结尾 charset_dictpath = c:/usr/local/coreseek/etc/ #windows环境下设置,/符号结尾,最好给出绝对路径,例如:c:/usr/local/coreseek/etc/... charset_type = zh_cn.utf-8 min_prefix_len = 0 min_infix_len = 0 min_word_len = 2 ngram_len = 0 ngram_chars = u+4e00..u+9fbf, u+3400..u+4dbf, u+20000..u+2a6df, u+f900..u+faff,\ u+2f800..u+2fa1f, u+2e80..u+2eff, u+2f00..u+2fdf, u+3100..u+312f, u+31a0..u+31bf,\ u+3040..u+309f, u+30a0..u+30ff, u+31f0..u+31ff, u+ac00..u+d7af, u+1100..u+11ff,\ u+3130..u+318f, u+a000..u+a48f, u+a490..u+a4cf}index mdelta:music{ source = delta path = e:/sphinx/music/delta}#index定义index novel{ source = novel #对应的source名称 path = e:/sphinx/novel/ #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... docinfo = extern mlock = 0 morphology = none html_strip = 0 #charset_dictpath = /usr/local/mmseg3/etc/ #bsd、linux环境下设置,/符号结尾 charset_dictpath = c:/usr/local/coreseek/etc/ #windows环境下设置,/符号结尾,最好给出绝对路径,例如:c:/usr/local/coreseek/etc/... charset_type = zh_cn.utf-8 min_prefix_len = 0 min_infix_len = 0 min_word_len = 2 ngram_len = 0 ngram_chars = u+4e00..u+9fbf, u+3400..u+4dbf, u+20000..u+2a6df, u+f900..u+faff,\ u+2f800..u+2fa1f, u+2e80..u+2eff, u+2f00..u+2fdf, u+3100..u+312f, u+31a0..u+31bf,\ u+3040..u+309f, u+30a0..u+30ff, u+31f0..u+31ff, u+ac00..u+d7af, u+1100..u+11ff,\ u+3130..u+318f, u+a000..u+a48f, u+a490..u+a4cf}index ndelta:novel{ source = ndelta path = e:/sphinx/novel/delta}#全局index定义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 pid_file = e:/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... log = e:/var/log/searchd_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... query_log = e:/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/... binlog_path = #关闭binlog日志 compat_sphinxql_magics = 0}
回复讨论(解决方案) 求高手指点啊
public array sphinxclient::query ( string $query [, string $index = * [, string $comment = ]] )
index
索引名称 (可以为多个,使用逗号分割,或者为“*”表示全部索引).
我现在有几个库,每个库都用sphinx建了不同的索引
但是查询就出问题了
比如说,我要从a库中查询所需内容
那我怎么来指定要查询哪个库的索引呢
这是我的coreseek配置
#音乐源定义source music{ type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = music sql_port = 3306 sql_query_pre = set names utf8 sql_query_pre = replace into sph_counter select 1, max(id) from allmusic sql_query = select id,`name`,`singer` from allmusic where id<=(select max_id from sph_counter where counter_id=1) #sql_query第一列id需为整数#name、singer作为字符串/文本字段,被全文索引 sql_query_info_pre = set names utf8 #命令行查询时,设置正确的字符集 sql_query_info = select id,`name`,`singer` from allmusic where id=$id #命令行查询时,从数据库读取原始数据信息}# music 的增量索引source mdelta:music{ sql_query_pre = set names utf8 #sel_query_pre = replace into sph_counter select 1, max(id) from allmusic sql_query = select id,`name`,`singer` from allmusic where id<=(select max_id from sph_counter where counter_id=1)}#小说源定义source novel{ type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = novel sql_port = 3306 sql_query_pre = set names utf8 sql_query_pre = replace into sph_counter select 1, max(id) from novel sql_query = select id,`name`,`author`,`is_small` from novel where idquery ( '我', novel );
http://docs.php.net/manual/zh/sphinxclient.query.php