一.词库的基础搭建
词库结构主要由三部份组成,如下图
直达词库:用于特殊活动/专题跳转到指定页面,例如用户在搜索双十一,那直接跳转到双十一分会场;
联想词:用户输入关键词,系统根据关键词联想出用户可能需要输入的词汇;
分词词库:用于对用户输入的关键词进行拆分,再对拆分的结果进行页面指向
分词词库一般需要建立三种机制:
1)开源词:这种词可以直接在网上进行搜索,然后给到技术让他们存放;
2)自建分词:这模块主要给到做分词的人进行编辑维护,优化使用;
3)停用词:这模块用于让服务器知道,用户输入的哪些词汇不用回传给到指定页面;
二.建立缓存存储机制
缓很多人会问,为什么要有个缓存存储机制,直接根据用户搜索的关键词去服务器读取数据不就行了吗,这个理解是有误的,如果直接去服务器查阅信息,查询响应速度会慢(如果sku数量有几千万,自己想想,这只是一方面),所以需要有个缓存存储机制,每天设置几个时间段定时去服务器根据关键词刷一批数据存储到缓存,效率会提升
三.命中逻辑
1.用户输入关键词
2.读取缓存
3.判断是否联想词
4.是,将匹配的联想词在输入框下显示(排序和显示数量每个人自己决定),否的话不联想
5.1选择系统给到的联想词,1)把联想词已有的数据传给用户;2)查询直达词库判断是否直达词库,如果是直达词库,跳转到直达词库对应的页面路径,不是直达词则进行分词处理:通过查阅自建词,开源词,停用词,分词完成后,查询商品库,商品标题中是否包含用户的词汇,如果有的话,直接把命中商品搜索结果页传给前端,没有的话则提示找不到相关商品等
5.2不选择系统给到的联想词/不是联想词,查询直达词库判断是否直达词库,如果是直达词库,跳转到直达词库对应的页面路径,不是直达词则进行分词处理:通过查阅自建词,开源词,停用词,分词完成后,查询商品库,商品标题中是否包含用户的词汇,如果有的话,直接把命中商品搜索结果页传给前端,没有的话则提示找不到相关商品等
四.记录用户搜索词
这个机制用于扩大词库数据量,同时也能知道用户习惯输入哪些词汇,对于后期的分析起到一定的帮助,把搜索词汇大的同步到词库中等
网友评论