首页 > 代码库 > 关于开发简易搜索引擎的一些总结和思考

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

在大学期间,有段时间对搜索还是比较感兴趣的,就研究了几天。后来,发现搜索引擎太难搞了,分词啥的,好多都是纯算法。感觉没啥意思,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、简易搜索、电商网站。

  力求做到,思路清晰、代码复用、 有商业价值、提高个人技术水准,更重要的是为可能的若干年之后的,“去而复返”做写技术准备。

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