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

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

转载于:https://www.cnblogs.com/qitian1/p/6463003.html

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

  1. VC++开发简易输电线路管理信息系统

    准备开发简易输电线路管理信息系统:方便起见:下一个源码来改: 1 下的源码运行截图如下: 2 拷贝一份,改名,打开: 3 用mdb操作工具修改该源码自带的mdb数据库: mdb操作工具见此 http: ...

  2. Android开发简易教程

    Android开发简易教程 Android 开发因为涉及到代码编辑.UI 布局.打包等工序,有一款好用的IDE非常重要.Google 最早提供了基于 Eclipse 的 ADT 作为开发工具,后来在2 ...

  3. IOS开发简易的网易新闻页面

    IOS开发简易的网易新闻页面 这是简易的网易新闻,使用swift语法去写的 git 仓库地址: https://e.coding.net/lujun1/wangyijianyixinwenswiftb ...

  4. 【信息检索】Java简易搜索引擎原理及实现(三)B+树索引和轮排索引结构

    上一篇文章 :[信息检索]Java简易搜索引擎原理及实现(二)新增停用词表 + 查询处理,我们在建立好的倒排索引的结构中剔除了停用词,同时引入了AND.OR.ANDNOT操作符,支持三种查询方式. 这 ...

  5. Android学习笔记-传感器开发之利用传感器和Tween开发简易指南针

    本次我们学习Android传感器的开发,前面已经介绍过了,tween的使用,所以,我们可以结合传感器与tween动画,开发简易的指南针. 首先先介绍一下传感器的相关知识, 在Android应用程序中使 ...

  6. Vue框架入门(一)---开发简易计算器

    涉及知识: HTML.CSS.JavaScript Vue(v-for.v-model.v-on.v-clock) Gitee仓库 :https://gitee.com/vgtime123/Calcu ...

  7. java awt 简单计算器,JAVA Swing 开发简易计算器(上)

    开发一个简易的计算器我们主要分为两大部分:图形界面设计与具体功能实现.这篇文章讲图形界面设计,下篇讲具体功能实现. 代码下载:https://github.com/taifus/Java_Calcul ...

  8. JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统(附源码)

    文章目录 JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统 一.系统介绍 二.开发步骤 三.系统展示 四.开发总结 五.数据库相关 ...

  9. java swt 计算器_JAVA开发简易计算器界面-SWT

    大家好,我是成都[LD],博客四年前就申请了,一直没打理,最近正好有时间,遂萌生了写技术博客的念头.我不得不感慨现在新技术更新很快,一不小心,就感觉自身就Out了.记得一年前,当时我也是在51CTO上 ...

最新文章

  1. Vue:对象更改检测注意事项
  2. 广播的最佳实践——实现强制下线功能(Android_Broadcast)...
  3. C++ STL 总结
  4. pandas如何保存在excel里面_【精选】Pandas一站式教程!
  5. centos6.4 使用 HDFS C API
  6. 可视化图形(二):热力图-imshow()
  7. list java removeif_java – removeIf()方法.从List中删除所有元素
  8. 详解ASP.NET页面生命周期事件
  9. 基于heartbeatV2版本的ha-gui工具对httpd做高可用集群(1)
  10. Opensturt和Struct区别
  11. android之去掉空包合并
  12. hadoop集群搭建(3)
  13. 【U8+】去掉填制凭证界面金额中的网格
  14. 「HNOI 2009」图的同构记数
  15. 网络安全架构与域划分(企业安全)
  16. ASO优化_积分墙优化打量,广告投放策略
  17. 八百呼的手机录音系统,一个划时代的进步
  18. 使用jasypt加密解密
  19. php单双引号嵌套解决方案
  20. 《数据结构与面向对象程序设计》第1周学习总结

热门文章

  1. 六、jQuery基础
  2. JFrame 居中显示
  3. Stanford CoreNLP使用需要注意的一点
  4. 数组去重是面试中经常问到的问题
  5. PAT (Basic Level) Practise:1017. A除以B
  6. Struts2 随笔1
  7. IOS7开发~API变化
  8. 建设私有云需要注意哪些问题?
  9. window mysql8.0 zip版本安装
  10. MySql——安装与配置与启动和停止