您的位置:首页 > 其它

关于开发简易搜索引擎的一些总结和思考

2015-05-03 00:00 323 查看
在大学期间,有段时间对搜索还是比较感兴趣的,就研究了几天。后来,发现搜索引擎太难搞了,分词啥的,好多都是纯算法。感觉没啥意思,so就半途而废,玩别的技术领域去了。

大学毕业加入秒针,对广告和监测有了一定的兴趣。so又想搞搜索引擎了,大概的目标就是,从网上爬去内容,建立索引,网友搜索、点击、广告点击等监测统计,存到数据库。

这个项目,还真是做了,做完了一个Demo版。借助jsoup和自己写几行代码爬网页, 然后用lucene建立索引,然后就可以查询了,只能存储最基本的日志。项目名称叫做FansITSearch。

这个项目,还有另外一个用途, 就是索引硬盘中的内容,比如TXT、PDF、Word、Excel等各种类型的文档,方便自己查找。我们应该非常清楚地看到,Windows自带的搜索,慢的和蜗牛一样。

桌面搜索引擎,不知道有没有比较牛逼的,反正我还没有注意到。

2014年下半年,在写个人官网和BriefCMS,都是侧重内容型的网站,建立全站的全文搜索,还是非常有实际价值的。

在网站中,加入全文搜索功能,除去技术实现,怎么接入有2种思路:
1.把Lucene实现的全文索引和查询,做成基础库。
其他业务项目需要使用,就引入这个基础库,开发起来,只需要提供数据等接口就可以了。
这种方式,我觉得相对容易实现。毕竟是白盒的,能直接看到代码,定制很容易。

2.把全文搜索做成一项服务。
这个网站是一个独立的项目,其它任何内容型的网站,如果需要搜索功能,使用它的服务就好。
比如,百度早期就是给其它门户网站提供站内搜索。
服务怎么去实现呢,毕竟各个项目之间要互相独立。

关于功能
1. 爬虫
用jsoup解析页面的url、自己写递归、逻辑判断,也可以使用WebMagic、Apache-solr。
solr一定得认真研究下,http://lucene.apache.org/solr/

2.存储数据
文件、数据库

3.索引
lucene做

4.查询
lucene

5.统计。

自己写代码,比如搜索词、点击。

原文首发:http://fansunion.cn/article/detail/579.html

写这篇文章,其实是想做个一个关于搜索的总结,同时,为2015年预计的开发做个思想准备,知道自己应该去解决哪些问题。

预计2015年的项目有,小雷官网、BriefCMS、简易搜索、电商网站。

力求做到,思路清晰、代码复用、 有商业价值、提高个人技术水准,更重要的是为可能的若干年之后的,“去而复返”做写技术准备。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息