今天项目主管给了我一个全新的项目任务,做一个小型的基于内存的搜索应用,这个项目的目的是为了适应我们当前一个重点项目的需求-基于tag的快速搜索,虽说我们已经使用了公司的一套搜索引擎,不过其具有通用软件的一些弊端,比如配置困难,对需求的修改响应不及时,以及效率不够高.
我本人目前对搜索还是个门外汉,根本不知道该怎样入手,于是项目主管把我交给了另一个搜索项目组进行学习,呵呵,于是有了我最近的blog主线------搜索开发设计.
搜索该词现在已是最最热门词汇之一,在做这个项目之前我对搜索技术也是心有向往,但是总觉得信心不足,感觉自己很难成为搜索人才的一员,不过这次是赶鸭子上架,不行也得行了,好在今天跟搜索项目主管沟通了一下,我这个项目很简单(他说的),很容易实现(算法是现成的模块),我才稍微放下点心,要不今年年终奖就要泡汤了啊.
下面是该位给我说的系统框架:
Index部分
1)segment(分词,预处理部分)
2)顺排表(根据词典)
3)倒排表
4)生成倒排表文件
顺排表(文档到词汇的二维表):doc:w1,w2.......
倒排表(词汇到文档的二维表):w1:doc1,doc2
search部分
1)segment(search string 分词)
2)查找所对应的字典id
3)搜索倒排表
4)结果的排序(相关性)和逻辑运算(或 并)
看起来是不难吧,呵呵,那我该怎样动手了,明天再说!!!!