sphinx全文检索

Sphinx的全文检检索http://www.coreseek.cn/products-install/install_on_windows/#testpackdesc下载

Sqlsrv数据库,

1.在文件D:\coreseek\etc\csft.conf的内容

#源定义
source mssql
{
type = odbc
sql_host = (local)
sql_user = user
sql_pass = 111111

sql_db = test
sql_port = 1433
odbc_dsn = DSN=odbc_sphinx1;Uid=dbo_spms_user;Pwd=sioc_spms2014
sql_query = SELECT id,ICSNumber,chemNameEN,chemNameCN FROM test where chemNameCN != '' and chemNameEN != ''

sql_attr_uint = id
#sql_attr_timestamp = date_added

#sql_query_info_pre = SET NAMES gbk
sql_query_info = SELECT * FROM test WHERE id=$id
}

#index定义
index mssql
{
source = mssql #对应的source名称
path = D:/0_SPMS/Sphinx/var/data/sqlsrv #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
charset_dictpath = D:/0_SPMS/Sphinx/etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
charset_type = zh_cn.gbk #支持中文,使用的时候需要转码
}


#全局index定义
indexer
{
mem_limit = 512M
}

#searchd服务定义
searchd
{
listen = 9312
read_timeout = 5
max_children = 30
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
pid_file = D:/0_SPMS/Sphinx/var/log/searchd_sql_pid.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log = D:/0_SPMS/Sphinx/var/log/searchd_sql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log = D:/0_SPMS/Sphinx//var/log/query_sql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
# binlog_path = #关闭binlog日志
}

注意:odbc_sphinx1是在数据源中天津的dsn

2. 在D:\coreseek\api\test.php中测试

require ( "sphinxapi.php" );

$cl = new SphinxClient ();

$cl->SetServer ( '127.0.0.1', 9312);

$cl->SetConnectTimeout ( 3 );

$cl->SetArrayResult ( true );

$cl->SetMatchMode ( SPH_MATCH_ANY);

$tmp = iconv("utf-8","gbk",'阿斯利多');

echo $tmp;

//$res = $cl->Query ($tmp, "mssql" );

//$res = $cl->Query ( '测试', "*" );

echo '

';

print_r($cl);

print_r($res);

3在ci中调用

Public function get_sphinx(){

include_once __ROOT__.APPPATH . 'libraries/sphinxapi.php';

$cl = new SphinxClient ();

$cl->SetServer ( __IPSPHINX__, __PORTSPHINX__);

$cl->SetConnectTimeout ( 3 );

$cl->SetArrayResult ( true );

$cl->SetMatchMode ( SPH_MATCH_ANY);

// $tmp = iconv("utf-8","gbk",'阿斯利多');

$tmp = iconv("utf-8","gbk",$keywords);

$res = $cl->Query ($tmp, "mssql" );

$id_arr = '';

$res_arr = $res['matches'];

foreach($res_arr as $key=>$ss){

if($key == (count($res_arr)-1)){

$id_arr .= $ss['id'];

}else{

$id_arr .= $ss['id'].',';

}

}

$sql = "select top 1000 ID,mol_id,CAS,ICSNumber,keyword,CASNamber,MOLWeighti,ICS,chemNameEN,chemNameCN from h2o_keywords4pro2 where id in({$id_arr})";

$res_all = $this->db->query($sql)->result_array();

return $res_all;

}

主要是针对sqlsql,mysql的比较简单,默认的为mysql。出现警告时没问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值