ecshop通过coreseek搜索会员信息

2012-10-10 15:56 来源:www.chinab4c.com 作者:ecshop专家


  我们知道,coreseek的搜索功能是十分强大的,我们可以通过配置coressek的搜索功能,对ecs_users中的会员名user_name进行搜索,这样就大大提高了搜索的性能。首先我们要在ecshop的环境下配置coressek服务,也就是配置csft.conf具体内容如下。
  source src2
{
    type                    = mysql

    sql_host                = localhost
    sql_user                = root
    sql_pass                =
    sql_db                    = 273upload
    sql_port                = 3306
    sql_query_pre            = SET NAMES utf8

    sql_query                = SELECT user_id as id,UNIX_TIMESTAMP(last_login) AS date_added, user_name as title FROM ecs_users
    sql_query_info_pre      = SET NAMES utf8                                        #命令行查询时,设置正确的字符集
    sql_attr_timestamp       = date_added
    sql_query_info          = SELECT user_id, user_name FROM ecs_users WHERE user_id=$id #命令行查询时,从数据库读取原始数据信息
}

#index定义
index src2
{
    source            = src2             #对应的source名称
    path            =  D:/coreseek/var/data/src2/src2 #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    docinfo            = extern
    mlock            = 0
    morphology        = none
    min_word_len        = 1
    html_strip                = 0
    charset_table = 0..9, A..Z->a..z, _, a..z, U+00AD, U+410..U+42F->U+430..U+44F, U+430..U+44F
    charset_type  = utf-8
    enable_star  = 1
    min_infix_len = 2
    ngram_len = 0

}
 
  假设我们的coreseek安装在d:/coreseek目录,我们在etc/csft.conf里面增加以下内容。
  然后编写搜索ecshop会员信息的接口。
  include_once("sphinxapi.php");
$cl = new SphinxClient ();
$cl->SetServer ( '127.0.0.1', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode (SPH_MATCH_BOOLEAN);
$res = $cl->Query ("*syst*", "src2" );
print_r($res);
  最后我们打印出来的信息,就是ecshop会员的user_id.十分方便。