各位ECSHOP网店系统用户大家好,欢迎来到ECSHOP商品关键词模糊分词搜索商品列表关键字加红功能。

最近给客户做一个ECSHOP商城,发现ECSHOP的模糊搜索要求太高,需要加入and、空格、加号等,客户搜索的时候不可能这样操作。

考虑到工期的问题,采用了织梦的分词算法,搜索效果虽然不是特别理想,但是这么短的时间也只能这样了。

在此分享给没钱又着急的朋友,需要用到的文件在文章末尾提供下载,大家下载后也可以直接覆盖使用。

一、ECSHOP联想下拉框

1、修改page_header.lbi模版文件,将搜索文本框修改为:ecshop" class="search-input"  οnfοcus="if(this.value=='ecshop'){this.value='';this.style.color='#000';}"  οnblur="closediv();if(this.value==''){this.value='ecshop';this.style.color='#999';}" style="color:#999;"  οnkeyup="keyupdeal(event,this.value);" οnkeydοwn="keydowndeal(event);" οnclick="keyupdeal(event,this.value);"   autocomplete="off" />

嵌入js文件

嵌入css文件

2、根目录添加php文件search_suggest.php文件

二、分词搜索

1、修改search.php文件第196行/* 检查关键字中是否有空格,如果存在就是并 */

$arr        = explode(' ', $_REQUEST['keywords']);             $operator   = " AND ";

改为:/*调用织梦分词功能-start*/

require("lib_splitword_full.php");             $sp = new SplitWord();             $fenci=$sp->SplitRMM($_REQUEST['keywords']);             $sp->Clear();             /* 织梦分词后是使用空格进行划分,所以仍可使用ecshop的按照空格拆分为数组功能:检查关键字中是否有空格,如果存在就是并 */

$arr        = explode(' ', $fenci);             $arr        = array_reverse($arr);//将数组倒序排列,并插入完整关键字到数组末尾

$arr[count($arr)]=$_REQUEST['keywords'];             $arr        = array_reverse($arr);//再次将数组倒序,使完整关键字可以第一个被检索

array_pop($arr);//删除织梦分词产生的数组最后一个元素为空格

$operator   = " and ";//sql检索语句使用union联合检索

$piaohong = $arr;//$arr数组在飘红的时候已经被产品列表占用了,所以另外赋值给一个数组备用。

/*调用织梦分词功能-end*/

2、修改search.php文件第382行到403行/* 获得符合条件的商品总数 */

$sql   = "SELECT COUNT(*) FROM " .$ecs->table('goods'). " AS g ".

"WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ".

"AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock ." ) ".$tag_where." )";     $count = $db->getOne($sql);      $max_page = ($count> 0) ? ceil($count / $size) : 1;     if ($page > $max_page)     {         $page = $max_page;     }      /* 查询商品 */

$sql = "SELECT g.goods_id, g.goods_name, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ".

"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".

"g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img, g.goods_brief, g.goods_type ".

"FROM " .$ecs->table('goods'). " AS g ".

"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".

"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".

"WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ".

"AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock . " ) ".$tag_where." ) " .

"ORDER BY $sort $order";

打开 /includes/lib_goods.php 文件(建议使用editplus)找到下面代码(大概在287行左右)/*sun04zh3-20130905-调用织梦分词功能-更改ecshop的sql语句采用union方式-start*//*因为后面要用union生成数据集表,所以先根据拆分出的关键词,生成union所需的所有sql语句,*/$select = "(";     foreach($arr AS $se => $t)     {          $select .= "SELECT click_count,goods_sn,is_alone_sale,is_on_sale,is_delete,goods_id, goods_name, market_price, is_new, is_best, is_hot, shop_price AS org_price, shop_price ,promote_price, promote_start_date, promote_end_date, goods_thumb, goods_img, goods_brief, goods_type FROM(select  click_count,goods_sn,is_alone_sale,is_on_sale,is_delete,goods_id, goods_name, market_price, is_new, is_best, is_hot, shop_price AS org_price, shop_price ,promote_price, promote_start_date, promote_end_date, goods_thumb, goods_img, goods_brief, goods_type from".$ecs->table('goods')." where goods_name like '%$t%' order by click_count desc) AS P$se";//第一个关键词是完整关键词

if($se==0)//插入一个当所有拆分关键词在商品名称中为and时的sql语句        {             $select .= " UNION SELECT click_count,goods_sn,is_alone_sale,is_on_sale,is_delete,goods_id, goods_name, market_price, is_new, is_best, is_hot, shop_price AS org_price, shop_price ,promote_price, promote_start_date, promote_end_date, goods_thumb, goods_img, goods_brief, goods_type FROM(select  click_count,goods_sn,is_alone_sale,is_on_sale,is_delete,goods_id, goods_name, market_price, is_new, is_best, is_hot, shop_price AS org_price, shop_price ,promote_price, promote_start_date, promote_end_date, goods_thumb, goods_img, goods_brief, goods_type from".$ecs->table('goods')." where 1  $keywords order by click_count desc) AS Pa";         }         if($setable("goods")." AS P " .

"WHERE is_delete = 0 AND is_on_sale = 1 AND is_alone_sale = 1  " ;     }     else     {          /* 获得符合条件的商品总数 */

$sql   = "SELECT COUNT(*) FROM $select AS P " .

"WHERE is_delete = 0 AND is_on_sale = 1 AND is_alone_sale = 1  " ;     }     $count = $db->getOne($sql);      $max_page = ($count> 0) ? ceil($count / $size) : 1;     if ($page > $max_page)     {         $page = $max_page;     }     if($select=="()")//当关键词为空时,没有拆分关键词,所以用于union的$select为空,仍需要调用goods表     {          /* 查询商品 */

$sql = "SELECT click_count,goods_sn,is_alone_sale,is_on_sale,is_delete,goods_id, goods_name, market_price, is_new, is_best, is_hot, shop_price AS org_price, shop_price ,promote_price, promote_start_date, promote_end_date, goods_thumb, goods_img, goods_brief, goods_type ".

"FROM ".$ecs->table("goods")." AS P " .

"WHERE is_delete = 0 AND is_on_sale = 1 AND is_alone_sale = 1  " ;     }     else     {          /* 查询商品 */

$sql = "SELECT click_count,goods_sn,is_alone_sale,is_on_sale,is_delete,goods_id, goods_name, market_price, is_new, is_best, is_hot, shop_price AS org_price, shop_price ,promote_price, promote_start_date, promote_end_date, goods_thumb, goods_img, goods_brief, goods_type ".

"FROM $select AS P " .

"WHERE is_delete = 0 AND is_on_sale = 1 AND is_alone_sale = 1  " ;     }

三、搜索出的产品列表产品关键词飘红功能:

1、修改search.php文件第473行到480行if($display == 'grid')         {             $arr[$row['goods_id']]['goods_name']    = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];         }         else         {             $arr[$row['goods_id']]['goods_name'] = $row['goods_name'];         }

修改为:/*根据分词对产品名称进行替换-start*/

$tihuan=$row["goods_name"];         foreach($piaohong AS $ph_count => $ph)         {              $tihuan = str_replace($ph,"$ph",$tihuan);         }                $arr[$row['goods_id']]['goods_name'] = $row['goods_name'];//因为前台用到没有替换的商品名称,所以保留goods_name值

$arr[$row['goods_id']]['tihuan'] = $tihuan;         /*根据分词对产品名称进行替换-end*/

2、修改search.dwt模板文件

将显示商品名称的地方替换为:

{$goods.tihuan}

四、文中所有涉及的修改和要用到的文件

关键词联想关联 php,ECSHOP商品关键词模糊分词搜索插件,商品列表关键字加红功能...相关推荐

  1. php 搜索名称或者编号,ECSHOP商品关键词模糊分词搜索插件,商品列表关键字加红功能-ecshop插件网...

    最近给客户做一个ECSHOP商城,发现ECSHOP的模糊搜索要求太高,需要加入and.空格.加号等,客户搜索的时候不可能这样操作. 考虑到工期的问题,采用了织梦的分词算法,搜索效果虽然不是特别理想,但 ...

  2. 总裁演说思维方式应用:口才训练方法关键词联想训练法

    总裁演说思维方式应用:口才训练方法关键词联想训练法 关键词联想就是由一个关键词引发的联想. 关键词联想可以分为三类 一.从一个关键词联想到另一个关键词 例如:从关键词"人"联想到& ...

  3. 四川一度智信:电商平台商品关键词优化技巧

    四川一度智信:电商平台商品关键词优化技巧 有关一定网店运营经验的朋友,应该都知道标题对于商品发展来说的重要性.商品标题直接影响了商品的搜索展现情况,进而也就影响了商品的流量获取.因此,标题优化也是卖家 ...

  4. 拼多多关键词搜索采集商品数据接口,拼多多分类ID搜索采集商品销量接口,拼多多上货接口,拼多多商品列表API接口

    可以通过关键词搜索接口采集商品列表详情页各项数据或者是用分类ID搜索采集商品列表数据,包含商品标题,skuid.价格.优惠价,收藏数.销量.SKU图.标题.详情页图片等页面上有的数据均可以拿到,大家都 ...

  5. 拼多多关键词搜索商品详情分析接口(分类ID搜索精准商品数据)代码对接教程

    拼多多关键词搜索商品详情分析接口(分类ID搜索精准商品数据)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必 ...

  6. 关键字搜索aliexpress商品API接口(速卖通关键词搜索商品接口)

    关键字搜索aliexpress商品API接口(速卖通关键词搜索商品接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中,点击 ...

  7. 电商!商品关键词查询搜索排名与优化

    在淘宝,做关键词自然排名优化是一件很重要的事情.关键词自然搜索排名,意味着展现机会和曝光率的多与少.很多人做电商成绩并不理想,究其原因是没有弄清楚,自己店铺商品的搜索排名和客户的需求.在买家搜索商品关 ...

  8. 弘辽科技:淘宝店铺怎么优化商品关键词?

    很多人的淘宝店铺权重不低,但是商品的流量没有什么,原因就是商品的关键词可能没有优化好,所以别人搜索关键词基本找不到你家的宝贝,那么怎么去优化商品的关键词呢?下面给大家介绍一些方法. 淘宝店铺怎么优化商 ...

  9. javascript搜索框联想搜索_jQuery搜索框效果实现代码(百度关键词联想)

    可以实现关键词联想的,搜索框:集合了百度,谷歌,搜狗,360,腾讯等多家搜索 search.html的代码: 搜索框例子 *{margin:0 auto} 站内搜索 百度搜索 360搜索 腾讯搜索 搜 ...

最新文章

  1. 如何用数学追到完美情人?
  2. python切片语法-Python切片详解
  3. 《Adobe Flash CS6中文版经典教程》——导读
  4. $.get、$.post 和 $().load()
  5. 开源项目贡献者_如何认识您的开源项目贡献者并发展您的社区
  6. 工单更改历史记录(轉載)
  7. MySQL 创建触发器
  8. centos7 如何重启web服务_CentOS7重启网络服务失败。
  9. linux使用.rpm包安装mysql
  10. LeetCode62 Unique Paths
  11. java实现红包要多少钱_Java实现抢红包功能
  12. Java初学者可以实现的简单小程序(建议收藏学习)
  13. 《普林斯顿微积分读本》笔记-第3章极限导论
  14. linux 内核配置详解
  15. 如何在物联网平台创建一个千里传音产品?
  16. 文墨绘学任何事物都是发展变化的
  17. php 精湛技术,【名医风采】范学民:用精湛技术温暖患者
  18. linux yum zlib安装,Centos升级zlib库导致yum运行错误
  19. 自由 Freedom
  20. 收集的一些名人经典语录

热门文章

  1. 分布式搜索 Elasticsearch —— 节点实例化
  2. Spring JPA 中的Repository体系
  3. 携程SQL面试题忘大牛解答解决思路
  4. FIFO分枝_限界算法
  5. 对象创建过程之二(类加载器)
  6. 通过日志恢复SQL Server的历史数据
  7. Windows 2003性能监视器中的计数器名称变成数字的解决方法
  8. 【Python生成器与迭代器的区别】
  9. 字符串常量与字符串变量
  10. tornado post第3方_[33]python-Web-框架-Tornado