sphinx查询问题

php中文网
发布: 2016-06-20 12:42:22
原创
1235人浏览过

我现在有几个库,每个库都用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}
登录后复制

蓝心千询
蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

蓝心千询 34
查看详情 蓝心千询


回复讨论(解决方案)

求高手指点啊

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 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}
登录后复制



按索引名来来查询,不是指定库,sphinx搜索和数据库没有关系

$cl = new SphinxClient ();$cl->SetServer ('localhost', '9312');$res = $cl ->Query ( '我', "novel" );
登录后复制


http://docs.php.net/manual/zh/sphinxclient.query.php

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号