显示标签为“搜索”的博文。显示所有博文
显示标签为“搜索”的博文。显示所有博文

星期日, 五月 27, 2007

与搜索相关的研发工作

想从事与搜索相关的研发工作,需要哪些知识。带着这个疑问,我查看了包括Google,Baidu,Yahoo,腾讯,Sohu,Sina,阿里巴巴等公司的招聘信息。自我总结如下:
  • 为什么要从事研发工作?
  1. 在公司处于核心地位;
  2. 把研究和开发紧密而完美的结合在一起;
  • 研发职责是什么?
  1. 负责搜索引擎系统的架构设计以及核心模块的系统设计;
  2. 进行搜索引擎系统核心模块的编码和技术研发;
  3. 重点技术难题的攻关;
  • 想从事研发工作,需要什么?
  1. 强烈责任心,开放的性格,良好的沟通能力;拥有极强的发现问题、分析问题、解决问题的能力;
  2. Fluency in English(Reading and Writing);
  3. 对算法设计、数据结构有深刻的理解;
  4. 精通Linux/Unix平台上的C/C++语言编程,熟练使用调试工具;熟悉网络、多线程编程技术(熟悉Unix系统调用io, socket, process, signal);如果懂Java,将更好;
  5. 能够使用一种脚本语言(perl,shell或者python);
  6. 具有搜索、信息检索相关领域开发经验者优先;
  7. 至少熟悉一种数据库系统,你可以选择MySql作为自己重点攻克的对象。
  • 想成为架构师,还需要什么?
  1. 熟悉分布式系统架构设计,具备大流量、大访问量、高负载环境下的系统开发及优化经验;
  2. 知识面广,思路开阔,对业界的最新技术发展动态有比较密切的关注;
  3. 对软件开发生命周期比较熟悉,具备较强的文档编写能力及项目管理能力。
想从事研发工作的朋友可以对照上面的要求,找出自己的不足。对于你来说,那些不足就是最重要的。缺什么,什么就最重要。

Update:一些更加细化的指标,比如:
  • 搜索引擎各子系统(Spider、Indexer、Searcher、分词、网页仓库)的设计和实现。
  • 搜索引擎的性能优化分析和功能升级。

星期五, 八月 25, 2006

反向索引(Inverted Index)

反向索引是一种索引结构,它存储了单词与单词自身在一个或多个文档中所在位置之间的映射。反向索引通常利用关联数组实现。它拥有两种表现形式:
  1. inverted file index,其表现形式为 {单词,单词所在文档的ID}
  2. full inverted index,其表现形式为{单词,(单词所在文档的ID,在具体文档中的位置)}
具体实例,假设有三个文档:
  • T0 = "it is what it is"
  • T1 = "what is it"
  • T2 = "it is a banana"
那么,采用inverted file index方式,结果是:
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
采用full inverted index方式,结果是:
"a":      {(2, 2)}
"banana": {(2, 3)}
"is": {(0, 1), (0, 4), (1, 1), (2, 1)}
"it": {(0, 0), (0, 3), (1, 2), (2, 0)}
"what": {(0, 2), (1, 0)}