1. 存储优化:
搜索的基本功能就是:在很大的数据集合里面快速的查找出想要的数据,只能通过把数据做成索引;通过搜索引擎来快速查找。 索引要想查的快,最基本的就是把索引数据放到内存中,但内存是宝贵的物理资源,所以存储就成了一个难点:- index 尽量减少字段
- 多个字段合并压测保存
- 压缩保存
2. 搜索引擎查询性能
从大数据集合中查询出自己想要的数据,查询性能是非常关键的一环;如果查询性能差,占用物理资源多,而且时间太长客户都跑了; 从哪几方面入手来进行查询性能的优化呢?:- cache
- 索引分级:按照业务进行划分,上面加上一个proxy 进行流量转发
- xxxxx
- xxxx
3. 搜索更新数据
大数据-->index,index 需要更新;分为daily 级别的全量更新和秒级的实时更新;4. 搜索排序复杂度
对一个搜索引擎,召回结果是最基本的也是最简单的功能,但是对召回的数据进行拍下和推荐,给用户最想要的结果就变得很复杂; 难度也在增加。简单说下排序的基本逻辑- 算法的代码都是一些so,需要引擎平台有专门的插件平台来支持;负责load so +conf,计算分数
- 算法的灵魂是feature,是特征分数;一个数据有很多特征(算法同学可以灵活添加新的feature和update 老的feature)
- 每一个feature 计算分数都是执行这个feature 的so代码,根据对数据和用户打的tag 进行加分、减分最后得到这个feature的最后一个分数
- 对算法的feature来说,最重要的是数据的积累:对data和用户的tag (打标和属性)的数据积累,只有具有了这些数据,然后才能准确的计算分数
- 怎样计算分数:基于用户的很多tag(tag 的值根据用户行为实时更新),数据(宝贝)的很多tag(根据data的特性和行为进行实时的更新);利用每个feature计算的
更多推荐
搜索引擎的难点
发布评论