SEO做到一定境界时,经常会遇到各种瓶颈。大家都知道本页面上信息的相关性会高度影响到本页面最后的百度排名表现,那么,如何调用相关数据,就成了大家共同的难题了。在大型网站几千万甚至上亿的数据当中,去调出几条相关数据来,这在性能上是大难题。今天庭哥为大家分析一下曾经为某大型B2B平台(一呼百应)所规划的相关数据调用规则。
案例
一呼百应B2B平台基本情况介绍,如下:
1、店铺产品数据量约2亿。
2、网站程序:JAVA代码+ESB搜索系统+Mysql数据库。相关数据的查询使用ESB搜索系统,用户输入信息存放于Mysql数据库,系统自动将店铺产品及其他数据从Mysql数据库中同步到ESB搜索系统中。即:页面上相关产品信息的调用规则是通过ESB查询相关来完成的。
3、优化目标页面:静态搜索页(900万数据量)。
4、目标页面产生原理:
a、目标页面同时存在另外一套动态搜索页,用户在网站上手工输入一个关键词所看到的搜索结果页面,即为动态搜索页。系统会自动将动态搜索页结果存放为静态搜索页面,利于搜索引擎抓取。为了统一URL,已将动态搜索页屏蔽了蜘蛛,并聚权到了静态搜索页上。
b、网站上用户搜索一个词后,系统会判断库中是否已存在这个词,如果不存在则系统自动将本词入库,即自动产生一个静态页面,新页面链接入口放在列表页上。
c、同时自己也导入了共计900万词来填充这套页面的数据量。
5、优化核心点:相关产品信息的调用。一开始因为调用规则存在很大问题,导致调用出来的产品信息基本都是不相关的,用户体验极差,同时还牵连到百度排名表现不好。
6、库中产品信息数据存放包含“产品标题”字段及多个“标签”字段,查询相关数据就是根据这两点进行的,另外包含店铺等级的字段及产品质量评分的字段,查到相关数据后是按这2个字段来排序输入的。
7、网站已经配置好自动分词系统,需要注意的是,现有的分词系统不可能像百度搜索分词那么完善,所以只能靠调用规则来完善。
调用规则
下面是具体调用规则:
a、查 产品名称、标签,完全等于搜索词。
限制每个店铺只显示一个产品。
按店铺等级从高到低排序;店铺等级相同的情况下,按产品质量评分从高到低排序,评分相同情况下,按产品刷新时间从新到旧排序。
b、查 标题,全包含搜索词;
按店铺等级从高到低排序;店铺等级相同的情况下,按产品质量评分从高到低排序,评分相同情况下,按产品刷新时间从新到旧排序。
c、搜索词 分词后,查标题同时包含3个分词。
按店铺等级从高到低排序;店铺等级相同的情况下,按产品质量评分从高到低排序,评分相同情况下,按产品刷新时间从新到旧排序。
3个分词取词规则如下(与上第1次相同):
(1)优先取最长的3个分词(从前面往后面顺序取出),显示同时全包含3个分词的搜索结果。
例如:
http://b2b.youboy.com/p/D0A1D2B6C5AED5EAD4ECD0CDCAF7CAB2C3B4BCDBB8F1.html
将搜索词:“小叶女贞造型树什么价格”分词,
分词为:小叶 | 叶 | 女贞 | 女 | 贞 | 造型 | 树 | 价格 | 价 | 格
取词为:小叶 | 女贞 | 造型
(2)如果取到的3个词中(3个词都不是单字),有包含关系,则删掉最短的那个词(或者2个词),继续往后面取词补充为3个词。
例如:亚克力灯箱广告牌:亚克力 | 亚克 | 克力 | 灯箱 | 广告牌 | 广告 | 告牌 |
取出3个词中有被包含关系:“亚克力| 广告牌| 亚克”,去掉“亚克”后补词为:“亚克力 |广告牌| 灯箱”
(3)如果非单字分词不够3个,则取单字分词来补充为3个(被包含的词删除)
例如:烤弯玻璃吸顶灯:烤 | 弯 | 玻璃 | 玻 | 璃 | 吸顶灯 | 吸 | 顶灯 | 顶 | 灯 |
取非单字词、去掉包含词后,只有“吸顶灯”“玻璃”2个,少一个就从单字词中取,从前往后去调包含后,取“烤”,则取词为:吸顶灯|玻璃| 烤
(4)如果以上方法均做完之后,仍然不足3个分词,则有几个就用几个
例如:
矿山设备鄂式破碎机:矿山设备 | 矿山 | 矿 | 山 | 设备 | 鄂式破碎机 | 破碎机 | 破碎 | 碎 | 机 |
取最长词、去掉包含词后,只有2个词:鄂式破碎机 | 矿山设备 ,已经无词可取,则就取这2个词。
实例:
静态页面:
http://b2b.youboy.com/p/D0A1D2B6C5AED5EAD4ECD0CDCAF7CAB2C3B4BCDBB8F1.html
领取专属 10元无门槛券
私享最新 技术干货