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

在大学期间,有段时间对搜索还是比較感兴趣的,就研究了几天。

后来,发现搜索引擎太难搞了,分词啥的,好多都是纯算法。

感觉没啥意思,so就半途而废,玩别的技术领域去了。

  大学毕业增加秒针,对广告和监測有了一定的兴趣。

so又想搞搜索引擎了。大概的目标就是,从网上爬去内容,建立索引,网友搜索、点击、广告点击等监測统计。存到数据库。

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



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

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

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

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

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、简易搜索、电商站点。

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

原文地址:https://www.cnblogs.com/clnchanpin/p/6851538.html