搜索引擎岗位应聘必备题

简介: 假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。

搜索引擎岗位应聘必备题


导读

在搜索引擎应聘面试过程中,围绕搜索引擎本身技术、应用特点,总结有以下几类问题:1 URL2分词,3排序,4存储和系统,5开源系统,6数据挖掘。从另外一个角度看就是围绕存储、计算、服务展开。主要考察被面试者的全面基础知识、索引系统理解程度、系统设计分析能力,以及项目经验和动手能力。

共两部分内容,第一部分围绕提出6类问题的一些代表题,第二部分单独从海量数据处理提出问题和解决策略。

第一部分6类问题

1  URL问题

1.1 去重

A,B两个文件,每个有50亿个URL,如何找出两个文件中重复的url,不能用分布式。

1.2 爬虫设计

如何实现一个可以抓取5亿视频数据,提供最短30分钟更新最新视频的分布式爬虫系统,并画出示意图。说明提高爬虫效率优化点,数据实时更新策略

1.3爬虫维护

    设计一个可以方便维护的网页提取的策略,以及后续维护策略方法。

1.4爬虫设计

设计一个在几十台机器爬虫部署,并不断升级维护的最小工作量的策略和方法。

2. 分词问题

2.1 词典设计

设计一个字典。以字符串为索引,存储用户定义的定长结构。要求有增、删、查、改的功能。已经给定一个函数,可以由字符串映射到一个签名,每个签名由两个unsigned   int类型组成。假设每一个字符串能够对应唯一的一个签名,完全没有重复(或者重复的概率可以忽略),并且签名分布足够均匀。

请描述你的数据结构?内存如何申请?增、删、查、改的功能如何实现?如果操作很频繁,该如何优化?

2.2. 分词策略

说明一个自己常用的分词策略和业界常用分词和特点。

3 排序问题

3.1 检索评价

说明一个检索系统的关键指标有哪些。

3.2 排序参数

说明影响一个查询返回内容排序的影响因素有哪些。如果需要提高准确度需要优化哪些模块或则参数。说明一个网页的哪些数据对检索排序影响较大。

3.3动态排序

  设计一个排序[ 准确度 ] 持续优化策略和方法,保证在仅可能少重建索引的前提下面,持续优化排序, 说明基本思路。

4存储和系统题

4.1 存储和访问

如何实现一个可以承载5亿视频数据 可以提供90%的请求在200ms 内返回,支持高峰1000q/s 的检索系统。说明基本结构和模块策略。

4.2 存储和访问

如何实现一个可以保存5亿条数据的存储系统。使用何种策略,在大量写入,大量读取的情况。

4.3. 系统维护

如何保证一个服务系统不间断运行情况下维护[当机维护]和升级,在升级,切换,索引重建等情况。

4.4. 自动化处理

举出一个可以自学习,自调整的软件系统的基本组成和相关实例

4.5 存储和访问

200亿条数据,每条数据的大小在1K~1M不等,每条数据有一个唯一的u_int64id

请设计一个读取数据系统,能根据id获取数据。要求:

A.        内存有限制,16G

B.        尽可能利用内存资源

C.        尽可能高效的获取数据

D.        可以利用磁盘,磁盘容量不受限制

 

 

5开源案例题

5.1说明基本搜索技术学习途径和方法。

5.2说明一种数据流式业务处理的相关方法和技术

5.3  lucene  solr 的基本模块和流程和优缺点

5.4  lucene  solr 有哪些可扩展可优化点

5.5  nuthc基本模块和优缺点

5.6  hadoop 基本模块和流程和优缺点

5.7  hbase 基本模块和流程和优缺点

5.8  zookeeper 基本模块和流程和优缺点

5.9  Mareduce基本原理和优缺点

5.10  Google三件宝分析

5.11上机题:

实现一个简单 lucene [也可以其他开源组件] 的检索和查询系统。文档支持 title content

5.12上机题:

实现一个简单爬虫 抓取一个规则URL 网页。保存成文件到一个文件夹。 http://www.youku.com/playlist_show/id_[1-10000].html

文件命名按照 title-id.html 方法。

6数据挖掘问题

6.1. 说明在搜索中常用的几种数据分析和挖掘的方法 以及应用场合。

第二部分 海量数据处理

在处理海量数据问题时,首先要仔细分析问题,明白问题需要解决那些关键问题,明白需要达到怎样的存储、性能要求,在这之前,应充分理解业务数据的分布、数据粒度、数据服务的质量要求、数据的动态性、数据的关联性等真实数据、业务熟悉。通常我认为,处理海量数据问题时,心中要有一些基本概念:

   1. 现有的开源的优秀工具那些是处理海量数据的;

   2. 海量数据就因为数据大吗,可以考虑对海量数据进行分区操作;

   3. 加快海量数据的访问,数据索引必不可是;

   4. 内存总是有限的,内存的速度是最好的,建立缓存机制是十分必要的;

   5. 海量数据来源多样,数据格式也不相同,最好是统一为字符串处理,逻辑处理交给上层应用;

   6. 海量数据离不开集群、分布式,分布式的出错处理、负载均衡就必然要有一套可行的机制;

   7. 所有底层的问题或者说存储的问题解决了,未来方便上层应用或者夸大底层支持的业务,对外应该有一个明朗的逻辑视图;

   8. 系统设计和结构,会因为不同的语言、操作性在实现难以上不同,这也需要考虑;

   9. 海量数据的一个应用就是数据挖掘服务,多域数据来源统一管理下,数据仓库和相关计算也应该了解一二;

   10. 尽管说存储不是问题,如果能对数据进行压缩处理,又可以接受的性能,这何乐而不为呢。

在参考前人博客、文摘加上个人一点理解,汇总以下一些基础概念已帮助和我一样面临就业的学生,应对未来公司的面试考核。当然,有实际工作经验的大牛门来说,下面的问题早已不是问题,他们都在某个问题上是专家了。欢迎大牛指导!

 

具有通用性的数据结构和算法思路汇总有:

1. Bloom filter

2. Hashing

3. bit-map

4.

5. 双层桶划分,可以理解为多级索引

6. 数据库索引

7. 倒排索引(Inverted index)

8. 外排序

9.trie

10.分布式处理

 

参考:

1大数据量,海量数据 处理方法总结()  http://g.51cto.com/880824/85208

2数据挖掘中分类算法小结 http://www.hadoopor.com/thread-270-1-1.html

3 http://database.ctocio.com.cn/tips/273/8248273.s

4 http://www.google.com.hk

目录
相关文章
|
12月前
|
SQL 安全 前端开发
2023年最受欢迎的10个技术岗位及职位要求
2023年最受欢迎的10个技术岗位及职位要求
317 0
|
数据安全/隐私保护
求职招聘系统
求职招聘系统
|
搜索推荐 算法 UED
seo是什么意思(seo专员是什么职业?)
seo是什么意思(seo专员是什么职业?)
200 0
seo是什么意思(seo专员是什么职业?)
|
弹性计算 算法 开发者
阿里巴巴招聘最全集合帖:宣讲会+岗位+30篇面试宝典来啦
又到了金三银四的季节…… 特别为你送上阿里巴巴招聘各类信息汇总,还有30篇面试宝典+必备资料,供你学!
20016 0
阿里巴巴招聘最全集合帖:宣讲会+岗位+30篇面试宝典来啦
|
Web App开发
赏聘网:企业招聘和个人求职的直通车
蓝领求职是很多人力资源公司专注的招聘领域。空谷参与赏聘网策划、设计,从企业和个人两种角度切入,打造了一个没有中间商赚差价的招聘平台。
|
安全 索引
求职招聘渠道笔记
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/80878277 综合的: 1、http://www.
1290 0
求职找招聘信息
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396324 ...
1307 0

相关实验场景

更多