Lucene+Heritrix 开发搜索引擎

       Luceneapache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。<o:p></o:p>

作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用了Lucene作为全文检索的引擎,IBM的开源软件eclipse2.1版本中也采用了Lucene作为帮助子系统的全文索引引擎,相应的IBM的商业软件Web Sphere中也采用了LuceneLucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。<o:p></o:p>

Lucene 作为一个全文检索引擎,其具有如下突出的优点:<o:p></o:p>

1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。<o:p></o:p>

2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。<o:p></o:p>

3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。<o:p></o:p>

4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。<o:p></o:p>

5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search)、分组查询等等。<o:p></o:p>

面对已经存在的商业全文检索引擎,Lucene也具有相当的优势。首先,它的开发源代码发行方式(遵守Apache Software License),在此基础上程序员不仅仅可以充分的利用Lucene所提供的强大功能,而且可以深入细致的学习到全文检索引擎制作技术和面相对象编程的实践,进而在此基础上根据应用的实际情况编写出更好的更适合当前应用的全文检索引擎。在这一点上,商业软件的灵活性远远不及Lucene。其次,Lucene秉承了开放源代码一贯的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以在Lucene的基础上扩充各种功能,比如扩充中文处理能力,从文本扩充到HTMLPDF等等文本格式的处理,编写这些扩展的功能不仅仅不复杂,而且由于Lucene恰当合理的对系统设备做了程序上的抽象,扩展的功能也能轻易的达到跨平台的能力。最后,转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写完备的扩充功能。最后,虽然Lucene使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework),在遵守Lucene索引文件格式的基础上,使得Lucene能够运行在各种各样的平台上,系统管理员可以根据当前的平台适合的语言来合理的选择。



   Heritrix
IA的开放源代码,可扩展的,基于整个Web的,归档网络爬虫工程
   Heritrix
工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的
  
资源进行归档,建立网络数字图书馆,在过去的6年里,IA已经建立了400TB的数据。
   IA
期望他们的crawler包含以下几种:
  
宽带爬虫:能够以更高的带宽去站点爬。
  
主题爬虫:集中于被选择的问题。
  
持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网页。
  
实验爬虫:对爬虫技术进行实验,以决定该爬什么,以及对不同协议的爬虫爬行结果进行分析的。
Heritrix
的主页是http://crawler.archive.org
   Heritrix
是一个爬虫框架,可加如入一些可互换的组件。
  
它的执行是递归进行的,主要有以下几步:
   1
。在预定的URI中选择一个。
   2
。获取URI
   3
。分析,归档结果
   4
。选择已经发现的感兴趣的URI。加入预定队列。
   5
。标记已经处理过的URI
   Heritrix
主要有三大部件:范围部件,边界部件,处理器链
  
范围部件:主要按照规则决定将哪个URI入队。
  
边界部件:跟踪哪个预定的URI将被收集,和已经被收集的URI,选择下一个URI,剔除已经处理过的URI
  
处理器链:包含若干处理器获取URI,分析结果,将它们传回给边界部件
   Heritrix
的其余部件有:
   WEB
管理控制台:大多数都是单机的WEB应用,内嵌JAVA HTTP 服务器。
 
操作者可以通过选择Crawler命令来操作控制台。
   Crawler
命令处理部件:包含足够的信息创建要爬的URI
   Servercache
(处理器缓存):存放服务器的持久信息,能够被爬行部件随时
查到,包括IP地址,历史记录,机器人策略。
  
处理器链:
      
预取链:主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。
        
提取链:主要是获得资源,进行DNS转换,填写请求和响应表单
        
抽取链:当提取完成时,抽取感兴趣的HTMLJavaScript,通常那里有新的也适合的URI,此时URI仅仅被发现,不会被评估
        
写链:存储爬行结果,返回内容和抽取特性,过滤完存储。
        
提交链:做最后的维护,例如,测试那些不在范围内的,提交给边界部件
   Heritrix <st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.0.0</st1:chsdate>
包含以下关键特性:
              1.
用单个爬虫在多个独立的站点一直不断的进行递归的爬。
              2
。从一个提供的种子进行爬,收集站点内的精确URI,和精确主机。
              3
。主要是用广度优先算法进行处理。
              4
。主要部件都是高效的可扩展的
              5
。良好的配置,包括:
                  a
。可设置输出日志,归档文件和临时文件的位置
                  b
。可设置下载的最大字节,最大数量的下载文档,和最大的下载时间。
                  c
。可设置工作线程数量。
                  d
。可设置所利用的带宽的上界。
                  e
。可在设置之后一定时间重新选择。
                  f
。包含一些可设置的过滤机制,表达方式,URI路径深度选择等等。
  Heritrix
的局限:
               1
。单实例的爬虫,之间不能进行合作。
               2
。在有限的机器资源的情况下,却要复杂的操作。
               3
。只有官方支持,仅仅在Linux上进行了测试。
               4
。每个爬虫是单独进行工作的,没有对更新进行修订。                      <o:p></o:p>

5 。在硬件和系统失败时,恢复能力很差。
 6
。很少的时间用来优化性能。 <o:p></o:p>

<o:p> 

    根据搜索引擎工作原理,Heritrix从互联网上抓取网页,Lucene建立索引数据库,在索引数据库中搜索排序.</o:p>

Heritrix1.14.4源码及项目实践 Heritrix是作为互联网档案(Internet Archive)项目的开源网络爬虫,它的主要目的是为了创建和维护一个可靠的网页存档,用于长期的学术和研究需要。Heritrix不仅仅是数据的简单抓取工具,它允许使用者通过可配置的策略来定制爬取行为,以满足不同场景下的特定需求。Heritrix的定义是指一个遵循robots.txt协议的、具有高度可定制性的、模块化的、开源的网络爬虫。其核心设计原则是尽量模拟人类浏览网页的行为,从而实现更加高效、准确的网络数据抓取。 阅读详情

相关推荐

深入解析Heritrix 1.14.4:开源网络爬虫框架及源码

本文还有配套的精品资源,点击获取 简介:Heritrix是一个为大规模网页抓取设计的开源爬虫框架,由Internet Archive开发。它通过灵活的配置和插件系统提供定制化的爬行行为,适配多变的需求。Heritrix 1.14.4版本包括源码和编译后的二进制文件,支持深入学习和二次开发。爬虫工作流程涵盖种子管理、URL过滤、内容下载、解析和存储等步骤。框架支持不同的抓取策...

weixin_34885746的博客 2231

开发自己的搜索引擎lucene2.0+heritrix》一书对应的源码资料

开发自己的搜索引擎lucene2.0+heritrix》一书对应的源码资料,总共有30M,只上传了几个例子.<br>ch2-lucene入门小例子<br>myReserch-可用的网络搜索引擎

利用HeritrixLucene打造个人搜索引擎

本文还有配套的精品资源,点击获取 简介:HeritrixLucene是开源工具,前者用于网络爬取和数据抓取,后者用于全文搜索和索引。将两者结合,能开发定制化的搜索引擎。本教程将深入讲解Heritrix的配置灵活性、模块化设计和存储重试机制,以及Lucene的索引构建、搜索API、相关性评分和实时搜索功能。此外,还会介绍如何结合这两者来创建搜索引擎,从数据预处理到搜索结果展...

weixin_35762258的博客 796

开发自己的搜索引擎Lucene+Heritrix(第2版)

开发自己的搜索引擎Lucene+Heritrix(第2版)

搜索引擎搭建:heritrix+lucene

原文链接:http://harttle.com/2013/11/05/se-project.html采用 heritix+pagerank+lucene 方式搭建搜索引擎原型,并评估其性能。爬虫(Heritrixheritrix 是用作web归档的爬虫框架,java语言实现,具有 Apache License 自由软件许可。我们采用heritrix抓取网页数据。可参照官方 Guide:https:

分享技术,共建开放平台 1288

关于《开发自己的搜索引擎lucene2.0+heritrix》一书中的最后的例子!!

如果有谁要《开发自己的搜索引擎lucene2.0+heritrix》一书中的最后的例子,请留下你的邮箱,我会发你地址!!

记录那些曾今的迷茫 763

Lucene+Heritrix开发自己的搜索引擎

Lucene 是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。 作为一...

VirgooooS 374

开发自己的搜索引擎 lucene + heritrix

综合各项技术构建了一个典型的垂直搜索系统,具有很强的商业使用价值。

Heritrix+lucene开发自己的搜索引擎

Lucene全文搜索引擎的应用, 讲解如何使用Lucene全文搜索引擎的应用

heritrixLucene的垂直搜索引擎研究

相关学术论文

搜索引擎开源网络爬虫Heritrix无敌配置

搜索引擎开源网络爬虫Heritrix无敌配置搜索引擎开源网络爬虫Heritrix无敌配置

动手实践:基于Lucene 2.0和Heritrix构建自定义搜索引擎

本文还有配套的精品资源,点击获取 简介:本项目展示了如何利用两个开源工具LuceneHeritrix开发一个完整的搜索引擎Lucene是一个功能全面的全文搜索库,提供索引、查询解析、评分排序等功能。Heritrix则是一个强大的网络爬虫,用于收集网页数据。通过对这两个组件的学习和应用,开发者可以深入理解搜索引擎的核心技术,并实现自己的搜索引擎项目。本项目的代码文件包括...

weixin_32312889的博客 1060

基于Lucene4.6+Solr4.6+Heritrix1.14+S2SH实战开发从无到有垂直搜索引擎

我这里有套课程想和大家分享,需要的朋友可以加我qq和我联系。QQ2059055336. &lt;wbr&gt;&lt;/wbr&gt; &lt;wbr&gt;&lt;/wbr&gt; 一、课程内容介绍: &lt;wbr&gt;&lt;/wbr&gt; &lt;wbr&gt;&lt;wbr&gt;1、整体思路&lt;/wbr&gt;&

各研发管理 252

lucene2.0+heritrix

由于lucene2.0+heritrix一书示例用的网站(http://mobile.pconline.com.cn/,http://mobile.163.com/)改版了,书上实例不能运行,我又找了一个http://mobile.younet.com/进行开发并成功实现示例,希望感兴趣的同学,近快实践,如果此网站也改了就又得改extractor了,哈哈! search的Extractor代

robinliu的JAVA之路 607
上一篇: Lucene+Heritrix 开发搜索引擎
下一篇: Lucene+Heritrix 开发搜索引擎
iteye_4245
博客等级 码龄8年 2粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值