1.数据结构
关键词:数组、链表、哈希表、布隆过滤器和位图
数组和链表都是线性表,链表最简单的形式是单链表,对于检索过程加速,为了避免O(n)的检索时间,可以通过有序的组织数据把检索时间变成O(log n),这有赖于数组支持快速访问中间点。
链表如果也支持随机访问中间节点就也可以做到二分查找,以此出现的就是二叉搜索树,二叉搜索树需要平衡问题否则会退化成单链表。
哈希表是在数组和链表的检索上的进一步优化,能支持O(1)的访问,重点就是散列函数把id映射到位置,只要在查询时进行相同的计算就好了。
哈希表使用开放链表法解决冲突可以看成数组和链表的结合。
位图在哈希的基础上减少了空间的利用,只用1bit标记某个元素是否存在于系统中,布隆过滤器是在位图的基础上缩短数组长度通过多个哈希函数来实现。
2.搜索引擎用户满意度指标
包括相关性、时效性、文本质量、个性化。
相关性是一个客观指标只要文档d和查询q有一定关联就算。
时效性是根据不同的查询内容有不同的级别。
个性化对于用户的非常粗的查询有意义,因为精细化的查询可以直接锁定到用户希望得到的结果。
EAT是专家、权威、信赖的结合,比如权威机构大学发布的招生信息就比第三方辅导机构发布的招聘信息更加权威。
总结,搜索引擎和推荐的技术感觉相关性很高。