声明:本文首发在博客园晨星落羽Shulin_Caolvmememe首页,转载请注明出处。

前言

  2016.5到2017.5,我们三人(lvmememeShulin_Cao晨星落羽)共同完成了一个本科生科研项目——简体中文版儿童搜索引擎。在做的过程中我们发现,垂直搜索引擎的框架其实都差不多,只不过数据库中存的资源不同而已,一些技术比如网页爬虫、网页提取、信息检索在大多数垂直搜索引擎中是通用的。因此就有了这篇文章,把我们在做项目的过程中用到的技术分享出来,希望能够对感兴趣的朋友有所帮助。本文会详细说明项目中我们已经实现的功能使用的技术,同时也会阐述一些我们希望以后可能会实现的功能。本文期望达到的效果是,一年以后,当我已经忘记现在用到的技术细节,自己再照着这篇文章做,依然可以做出一个同样的搜索引擎。

  事实上,本文介绍的框架是一种最基本的简易框架,项目的完成也不代表项目的完善,我们还有许多功能鉴于时间限制和自身水平的限制,暂时没有实现。这些功能在文章中也会提及,只是无法展开细讲。尤其是机器学习、人工智能、数据挖掘等技术,在本文中不会涉及,本文关注更多的是网页爬虫(信息获取)、词条排序(信息检索)、前端后端通讯(信息展示),用到的语言主要包括Python、Java、PHP和前端网页制作的语言。

  或许在专业人士看来,本文所讲解的技术也只是几十年前的古老技术,但是我们写这篇博客的目的也不是炫耀自己的技术有多高超,只是想分享一下自己的成果。希望大牛们谅解我们作为低年级本科生水平有限,对于文章的错误,欢迎批评指正,如果有好的想法,也欢迎多多交流!

  项目的演示网址:http://www.kidsearch.cn/kidsearch/

目录

  1. 垂直搜索引擎的框架介绍

  2. 通过Python实现结构化信息获取

    2.1 爬虫需要的环境

    2.2 基于宽度优先搜索的网页爬虫

    2.3 通用的网页信息结构化信息提取的方法

    2.4 文章类网页提取的方法

    ...

  3. 通过Lucene对结构化信息进行索引和检索

    3.1 Lucene的安装与配置

    3.2 Lucene基本检索功能的测试

    3.3 把结构化信息加入索引并提供检索服务

    3.4 站内检索等待条件的检索

    ...

  4. 通过socket通讯提供网页检索服务

  5. 通过MySQL实现用户管理和搜索历史记录

  6. 加入元搜索的功能作为信息检索的补充

  7. 敏感词和停用词过滤的实现

    7.1 Lucene检索的敏感词和停用词过滤

    7.2 前端检索的敏感词过滤(针对元搜索)

(鉴于篇幅较长,每日24:00之前更新一次)

[原创]一种基于Python爬虫和Lucene检索的垂直搜索引擎的实现方法介绍的更多相关文章

  1. 基于python爬虫的github-exploitdb漏洞库监控与下载

    基于python爬虫的github-exploitdb漏洞库监控与下载 offensive.py(爬取项目历史更新内容) #!/usr/bin/env python # -*- coding:utf- ...

  2. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...

  3. python爬虫工程师各个阶段需要掌握的技能和知识介绍

    本文主要介绍,想做一个python爬虫工程师,或者也可以说是,如何从零开始,从初级到高级,一步一步,需要掌握哪些知识和技能. 初级爬虫工程师: Web前端的知识:HTML, CSS, JavaScri ...

  4. 基于Python爬虫采集天气网实时信息

      相信小伙伴们都知道今冬以来范围最广.持续时间最长.影响最重的一场低温雨雪冰冻天气过程正在进行中.预计,今天安徽.江苏.浙江.湖北.湖南等地有暴雪,局地大暴雪,新增积雪深度4-8厘米,局地可达10- ...

  5. 【原创】编写多线程Python爬虫来过滤八戒网上的发布任务

    目标: 以特定语言技术为关键字,爬取八戒网中网站设计开发栏目下发布的任务相关信息 需求: 用户通过设置自己感兴趣的关键字或正则表达式,来过滤信息. 我自己选择的是通过特定语言技术作为关键字,php.j ...

  6. 一种基于python的人脸识别开源系统

    今天在搜索人脸识别的文章时,无意中搜到一个比较开源代码,介绍说是这个系统人脸的识别率 是比较高的,可以达到:99.38%.这么高的识别率,着实把我吓了一跳.抱着实事求是的态度.个人 就做了一些验证和研 ...

  7. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  8. 基于python的爬虫项目

    一.项目简介 1.1 项目博客地址 https://www.cnblogs.com/xsfa/p/12083913.html 1.2 项目完成的功能与特色 爬虫和拥有三个可视化数据分析 1.3 项目采 ...

  9. FocusBI: 使用Python爬虫为BI准备数据源(原创)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...

随机推荐

  1. ASP.NET脚本过滤-防止跨站脚本攻击(收集别人的)

    ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力.当用户试图用<xxxx>之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个 HttpRe ...

  2. php数组的使用

    <?php echo "<h2>--------普通数组--------</h2>"; $arr1 = array(1,2,3,4); print_r ...

  3. 谈谈数据库中MyISAM与InnoDB区别 针对业务类型选择合适的表

    MyISAM:这个是默认类型,它是基于传统的ISAM类型, ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法. ...

  4. 一个想法照进现实-《IT连》创业项目:关于团队组建

    前言: 从上一篇<三天的风投对接活动内幕分享>归来后,从中领悟了不少内涵. 之后暂停了找钱的想法,这些天也拒绝了不少想要参与众筹的同学. 目前主要精力放在以下三件事: 1:重新规划顶层设计 ...

  5. ZJOI2017 Day3 滚粗记

    私のZJOI Day3 2017-3-21 07:52:53 今天,考了人生当中的第一次省选(虽然只是普及组三等奖但仍然有幸能体会一下).据胡老师说,这就是来体验一下被大神虐--真的是这样,听课听不懂 ...

  6. smm框架学习------smm框架整合实现登录功能(一)

    一.准备所需的jar包 1.1所需jar包 1.Spring框架jar包 2.Mybatis框架jar包 3.Spring的AOP事务jar包 4.Mybatis整合Spring中间件jar包 5.a ...

  7. python应用部署--flask

    首先必须吐槽一下,python应用部署简直就是有毒...太麻烦了.关键还不能成功部署. 网上很多教程都是说要用nginx和uwsgi.来来回回试了无数次都不行.于是乎,在某一个瞬间,灵感以来,发现了一 ...

  8. 当Node.js遇见Docker

    Node.js Best Practices - How to Become a Better Developer in 2017提到的几点,我们Fundebug深有同感: 使用ES6 使用Promi ...

  9. MCMC(三)MCMC采样和M-H采样

    MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)MCMC采样和M-H采样 MCMC(四)Gibbs采样(待填坑) 在MCMC(二)马尔科夫链中我们讲到给定一个概率平稳分布$\pi$ ...

  10. Yii2高级模板vendor和application非同级目录部署

    上面是Yii2的高级模板,当我们有多个application的时候,这种高级模板可以可以提供很好的扩展性,多个application共用一份YII2框架,默认情况下,框架和application是在同 ...