用coreseek搜索ecshop商品
2012-10-13 11:10 来源:www.chinab4c.com 作者:ecshop专家
用coreseek搜索ecshop商品,当你的产品非常多的时候,你就要考虑搜索的问题了。ecshop的商品搜索功能,确实不敢恭维,用的都是like模糊搜索,也就是说不但不会分词,而且在搜索的时候,虽然是可以通过goods_name,goods_desc,goods_sn 进行搜索,但是在ecshop中,一旦这个搜索在大量的数据下,就发挥不了作用了。
我们可以在coreseek中下功夫,就是通过配置coreseek搜索引擎,来针对ecshop的商品进行搜索。
1:配置好coreseek的csft.conf
source mysql
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = root
sql_db = 272utfzhifu
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query = SELECT goods_id as id, cat_id, brand_id, goods_name as title ,goods_desc FROM ecs_goods
#sql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint = cat_id #从SQL读取到的值必须为整数
#sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性
sql_attr_uint = brand_id
sql_query_info_pre = SET NAMES utf8 #命令行查询时,设置正确的字符集
#sql_query_info = SELECT goods_id, goods_name FROM ecs_goods WHERE goods_id=$id #命令行查询时,从数据库读取原始数据信息
}
#index定义
index mysql
{
source = mysql #对应的source名称
path = D:/coreseek/var/data/mysql #请修改为实际使用的绝对路径,例如:/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
}
2:进行搜索封装。
require ( "sphinxapi.php" );
$cl = new SphinxClient ();
$cl->SetServer ( '127.0.0.1', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ( 'BC01', "mysql" );
比如我要搜索BC01的产品,可以通过配置csft.conf goods_name as title ,goods_desc 来进行全文搜索。
3:处理返回的数据。
[matches] => Array ( [0] => Array ( [id] => 20 [weight] => 2 [attrs] => Array ( [cat_id] => 3 [brand_id] => 6 ) ) [1] => Array ( [id] => 24 [weight] => 1 [attrs] => Array ( [cat_id] => 3 [brand_id] => 9 ) ) )
这里的id就ecshop商品goods_id,同时返回了该商品的分类。上一章,我们讨论了coreseek来搜索ecshop会员。
最近更新
常用插件
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...