开源搜索引擎之路

 我的开源搜索引擎之路(转载)

    老板要求在一个月内搭建出一个搜索引擎出来,先期要求做一个站内搜索就可以了。于是我只有苦笑了,搜索引擎谈何容易,而之前没有这方面的经验,如何是好呢?这时我脑袋里闪过的,就是需要求助开源社区了。 

    我是做Java程序员出身,很快找到了大名鼎鼎的lucene,到ibm的devleopworks上泡了几天,基本上把lucene的原理搞明白了。当第一个例子跑起来的时候,还是有一些兴奋的,因为以前都不敢触及的技术领域,终于迈出了第一步。 

    相信大部分中国技术人员在对待国外的开源软件做的第二件事情就汉化,对于搜索引擎来说就是中文分词。第二轮的google查询,挑选了paoding分词,中国牛人实现的分词算法,在paoding的发布文档中有明确的集成方法,很容易就实现了。当第一个中文搜索结果呈现出来的时候,着实又兴奋了一下,因为可以在自己的站点上baidu了,信心有点膨胀,不要见怪啊。 

     于是为了能出一个最初级的demo,我将lucene的demo改造了一下,将里面的JSP全部加上了公司的LOGO,并且仿造着baidu的风格,做出了索引页和查询结果页。并将分页、页面显示、查询结果,甚至copyright都实现了一遍。做完这些的时候,我想可以给老板看一下了。这时离老板给我下达组建搜索引擎命令时只有5天,不得不感谢开源啊。 

    第一个目标达到后,我开始关注一切搜索引擎技术,下载了很多资料,有用的没用的都看一遍。这时我又心虚了,要实现的技术实在太多了。抓取、压缩、存储、分词、分类、整理、索引、合并、搜索、语义理解、缓存、加速、展示。我觉得每一样都是一个学科,额的神啦! 

    看了几天文章后,我觉得总要做点什么。于是找到lucene的一些相关项目玩了玩,包括solr、compass、luke,heritrix,GlusterFS等。heritrix是一个强大的网络爬虫,我用这东东花了两天时间,把公司的新闻频道都给抓下来了,比较横。GlusterFS是一个分布式文件系统,但经过一番研究后,发现它用来做文件镜像备份比较好,适合网站应用。 
    
    其中关于solr,研究了两天把demo搭起来,写了几个PHP程序调用,总体感觉这东东做展示、分词与索引管理方面比较强,但要搭建一个大型搜索引擎,solr明显不能胜任,与是就此打住了,没有继续研究。 
   
    所幸的是lucene的发明者Doug Cutting发起了另一个开源项目nutch,它是一个完全的搜索引擎应用程序,包括crawl,distributed computing,search三个部分,这个项目基本上满足我当时对于搜索引擎架构的需求。一个可以用无限扩展的PC Server集群构建软件,又兴奋了。 
    
    但我没有急于搭建nutch的应用环境,因为实在不清楚在nutch项目中哪是hadoop文件,哪些是nutch本身的文件。我从hadoop官方站点上下载了hadoop源程序,现在最新的是0.19-dev。用了三台linux服务器做测试,配置花了我整整两天,基本上把能做的demo和配置环境都试了一遍,收获不小,不得不感叹开源项目有如此功力。把google的mapreduce和dfs都用java实现了一遍,不敢说可以商业运营,但至少给类似我这些的技术人员可以迅速进入这个技术领域提供了超乎想像的便利。hadoop除了实现了google提出的mapreduce计算模型外,还实现了类似于GFS(google file system)的分布式文件系统HDFS(Hadoop distributed file system)。很好,很强大!在做hadoop时要感谢一下公司的运维工程师波波,这一块需要一些linux配置经验。 

    时机成熟了,我回过头来开始搭建nutch项目,将项目编译了一个新版本,简单的ant package就搞定了,将nutch的编译版本发布到之前搭好的hadoop的环境中去,运行一下,居然一次成功了,测试命令都能通过。开始crawl,看到mapreduce的执行过程,心里别提多兴奋了。接下来把之前研究好的paoding将到了nutch项目中,是用nutch的插件体系实现,没有改nutch的一句代码,关于这个的文章不多,完全是靠对ant的理解自行搞定的,呵呵。 

    为了尽快出效果,将crawl的结果从hdfs中拉到了local,配置一下nutch.war中的nutch-site.xml,迫不及待的启动tomcat。敲入链接,OK。一切都是那么美妙。nutch的logo也比较可爱,两个小人。接下来,我又拿出来模仿神功,将nutch的所有JSP修改成自己的搜索引擎字样。nutch里面实现了标题显示,高亮显示,网页链接显示,网页快照,页面评分,锚链接,以及RSS搜索等等。 

    到这里,我的第二个目的也达到了,就是利用分布式计算平台来搭建搜索引擎。 

    记录下我到现在对搜索引擎研究的路程,是为了给想进入搜索领域的技术人员一个参照。另外,在今后的文章中,我会陆续将我每一步研究的心得也blog出来。     
=========================================================================
=========================================================================
网络蜘蛛程序代码

国外开发的相关程序
1、Nutch

官方网站  http://www.nutch.org/
中文站点  http://www.nutchchina.com/
最新版本:Nutch 0.7.2 Released
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,可以建立自己内部网的搜索引擎,也可以针对整个网络建立搜索引擎。自由(Free)而免费(Free)。
2、Lucene

官方网站   http://lucene.apache.org
中文站点   http://www.lucene.com.cn/
Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包[用Java写的],即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
3、Larbinhttp://larbin.sourceforge.net/index-eng.html
larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人 Sébastien Ailleret独立开发。larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。
国内开发的相关程序
1、SQLET - 开放源码的中文搜索引擎   
官方网站  http://www.sqlet.com/
SQLET,是Search & Query &Link, 加后缀 let,表示小的,小型的意思.打算建立一个能搜上亿张网页的基于主题功能的中文搜索引擎.支持3种索引方式:MySql_table_Index,Lucene_Index,SQLET_Index.网页抓取可以保存在文件系统及数据库里。自带WebServer.
2、菲度垂直搜索引擎代码 
菲度 http://www.faydu.net 为一个垂直在线搜索的演示版,主要对国内一些购物站点进行搜索整理,
语言:VB.net(c#)
二、中文分词程序代码
1、计算所汉语词法分析系统 ICTCLAS

中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐马模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率高达97.58%(最近的973专家组评测结果),基于角色标注的未登录词识别能取得高于90%召回率,其中中国人名的识别召回率接近98%,分词和词性标注处理速度为31.5KB/s。ICTCLAS 和计算所其他14项免费发布的成果被中外媒体广泛地报道,国内很多免费的中文分词模块都或多或少的参考过ICTCLAS的代码。
下载页面: http://www.nlp.org.cn/project/project.php?proj_id=6
由于 ICTCLAS 是由 C 语言写成的,现在主流的开发工具用起来不太方便,于是有一些热心的程序员把 ICTCLAS 改为 Java 和 C# 等其他语言。
(1)fenci,Java 的 ICTCLAS,下载页面: http://www.xml.org.cn/printpage.asp?BoardID=2&id=11502
(2)AutoSplit,另一个 Java 的 ICTCLAS,已经找不到下载页面,点击本地下载
(3)小叮咚中文分词,曾经有下载页面,现在找不到了。据作者介绍,从 ICTCLAS 中改进,有 Java,C# 和 C++ 三个版本,介绍页面: http://www.donews.net/accesine
2、海量智能分词研究版
海量智能计算技术研究中心为了使中文信息处理领域的研究者们能够共同分享海量智能中心的研究成果,共同提高中文信息处理水平,特此发布《海量智能分词研究版》,供专家、学者和爱好者进行研究。
下载页面: http://www.hylanda.com/cgi-bin/download/download.asp?id=8

3、其他
(1)CSW中文智能分词组件
运行环境:Windows NT、2000、XP 或更高,可以在 ASP,VB 等微软的开发语言中调用。
简介: CSW中文智能分词DLL组件,可将一段文本自动的按常规汉语词组进行拆分,并以指定方式进行分隔,且可对其拆分后的词组进行语义、词频标注。其广范应用于各行各业的信息资料检索、分析。
下载页面: http://www.vgoogle.net/
(2) C# 写的中文分词组件
据作者介绍,一个 DLL 文件,可以做中英文分词组件。完全C#托管代码编写,独立开发。
下载页面: http://www.rainsts.net/article.asp?id=48
三、开源spider一览
spider是搜索引擎的必须模块.spider数据的结果直接影响到搜索引擎的评价指标.
第一个spider程序由MIT的 Matthew K Gray 操刀该程序的目的是为了统计互联网中主机的数目
Spier定义(关于Spider的定义,有广义和狭义两种).
  • 狭义:利用标准的http协议根据超链和web文档检索的方法遍历万维网信息空间的软件程序.
  • 广义:所有能利用http协议检索web文档的软件都称之为spider.
其中Protocol Gives Sites Way To Keep Out The 'Bots Jeremy Carl, Web Week, Volume 1, Issue 7, November 1995 是和spider息息相关的协议,大家有兴趣参考 robotstxt.org .
Heritrix 
Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
Heritrix (sometimes spelled heretrix, or misspelled or missaid as heratrix/heritix/heretix/heratix) is an archaic word for heiress (woman who inherits). Since our crawler seeks to collect and preserve the digital artifacts of our culture for the benefit of future researchers and generations, this name seemed apt.
语言:JAVA, ( 下载地址 )
WebLech URL Spider 
WebLech is a fully featured web site download/mirror tool in Java, which supports many features required to download websites and emulate standard web-browser behaviour as much as possible. WebLech is multithreaded and comes with a GUI console. 
语言:JAVA, ( 下载地址 )
JSpider
A Java implementation of a flexible and extensible web spider engine. Optional modules allow functionality to be added (searching dead links, testing the performance and scalability of a site, creating a sitemap, etc .. 

语言:JAVA, ( 下载地址 )
WebSPHINX 
WebSPHINX is a web crawler (robot, spider) Java class library, originally developed by Robert Miller of Carnegie Mellon University. Multithreaded, tollerant HTML parsing, URL filtering and page classification, pattern matching, mirroring, and more. 

语言:JAVA, ( 下载地址 )
PySolitaire 
PySolitaire is a fork of PySol Solitaire that runs correctly on Windows and has a nice clean installer. PySolitaire (Python Solitaire) is a collection of more than 300 solitaire and Mahjongg games like Klondike and Spider. 

语言ython , ( 下载地址 )
The Spider Web Network Xoops Mod Team     
The Spider Web Network Xoops Module Team provides modules for the Xoops community written in the PHP coding language. We develop mods and or take existing php script and port it into the Xoops format. High quality mods is our goal. 

语言:php , ( 下载地址 )
Fetchgals 
A multi-threaded web spider that finds free porn thumbnail galleries by visiting a list of known TGPs (Thumbnail Gallery Posts). It optionally downloads the located pictures and movies. TGP list is included. Public domain perl script running on Linux. 


语言:perl , ( 下载地址 )

Where Spider 

The purpose of the Where Spider software is to provide a database system for storing URL addresses. The software is used for both ripping links and browsing them offline. The software uses a pure XML database which is easy to export and import. 
语言:XML , (下载地址)

Sperowider Website Archiving Suite is a set of Java applications, the primary purpose of which is to spider dynamic websites, and to create static distributable archives with a full text search index usable by an associated Java applet. 
语言:Java , (下载地址)
SpiderPy is a web crawling spider program written in Python that allows users to collect files and search web sites through a configurable interface. 
语言ython , (下载地址)

Spider is a complete standalone Java application designed to easily integrate varied datasources. * XML driven framework * Scheduled pulling * Highly extensible * Provides hooks for custom post-processing and configuration 
语言:Java , (下载地址)

WebLoupe is a java-based tool for analysis, interactive visualization (sitemap), and exploration of the information architecture and specific properties of local or publicly accessible websites. Based on web spider (or web crawler) technology. 
语言:java , (下载地址)
ASpider
Robust featureful multi-threaded CLI web spider using apache commons httpclient v3.0 written in java. ASpider downloads any files matching your given mime-types from a website. Tries to reg.exp. match emails by default, logging all results using log4j. 
语言:java , (下载地址)
larbin 
Larbin is an HTTP Web crawler with an easy interface that runs under Linux. It can fetch more than 5 million pages a day on a standard PC (with a good network). 
语言:C++, (下载地址)
webloupe
Spidered Data Retrieval
SpiderPy
Sperowider

三、SEO相关资源
  1、域名信息查询

    ★ 查询国际顶级域名的信息(.aero, .arpa, .biz, .com, .coop, .edu, .info, .int, .museum, .net, .org),可以通过ICANN授权的域名注册商来查询,也可以直接到INTERNIC网站查询,网址是
http://www.internic.com/whois.html
        http://www.iwhois.com/
★ 查询全球各个地理顶级域名是否已经被注册可以到下列网址查询(其中也包括国内域名.cn):
http://www.uwhois.com/cgi/domains.cgi?User=NoAds
★ 查询国内域名的注册情况,
http://ewhois.cnnic.net.cn/index.jsp 
        ★ 万网的域名注册信息查询
         http://www.net.cn/
        ★ IP地址查询、域名注册信息Whois查询
        http://ip.zahuopu.com/

   2、alexa相关与搜索排行榜
     ★ 中文排名500强
      http://www.alexa.com/site/ds/top_sites?ts_mode=lang&lang=zh_gb2312 
     ★ Google Zeitgeist--Google搜索排行榜
      http://www.google.com/press/intl-zeitgeist.html#cn
     ★ 百度中文搜索风云榜
      http://top.baidu.com/
    ★ 雅虎搜索排行榜
     http://misc.yahoo.com.cn/top_index.html
    ★ 搜狗搜索指数
    http://www.sogou.com/top/
   3、搜索关键词查询
    ★   google关键字查询    https://adwords.google.com/select/KeywordSandbox 
    ★ 百度关键字查询    http://www2.baidu.com/inquire/dsquery.php 
    ★ 搜狐关键词    http://db.sohu.com/regurl/pv_price/query_consumer.asp 
   4、seo项目/工具
   ★网页质量     http://category.booso.com/cgi-bin/category/category.cgi
   ★关键词密度    http://www.21ql.com/seo/keyword.asp 
    ★搜索引擎蜘蛛模拟器   http://www.webconfs.com/search-engine-spider-simulator.php
    ★Google Dance查询工具: http://www.google-dance-tool.com/ 

   5、seo网站
  英文网站

   搜索观察   http://www.searchenginewatch.com/ 
   seochat    http://www.seochat.com
=======================================================================================
=======================================================================
2.  http://www.dbanotes.net/web/nutch.html     Nutch 初体验
开源搜索引擎资源列表

 2007/04/15 09:12 | by  Sangern King ]  开放源代码搜索引擎 为人们 学习、研究并掌握搜索技术 提供了极好的途径与素材,推动了 搜索技术的普及与发展 ,使越来越多的人开始了解并推广使用搜索技术。使用开源搜索引擎,可以大大缩短构建搜索应用的周期,并可根据应用需求打造 个性化搜索应用 ,甚至构建 符合特定需求的搜索引擎系统 。搜索引擎的开源,无论是对技术人员还是普通用户,都是一个福音。  
搜索引擎 的工作流程主要分为 三步 从互联网抓取网页→创建抓取网页的索引库→从索引库中进行搜索 。 

首先需要一个能
访问网络 爬虫器 程序,依据 URL之间的关联性 自动爬行整个互联网,并对爬行过的网页进行抓取收集。当网页被收集回来后,采用 索引分析程序 进行网页信息的分析,依据一定的 相关度算法 (如超链接算法)进行 大量计算 ,创建倒排序的索引库。索引库建好后用户就可以通过提供的搜索界面提交关键词进行搜索,依据 特定的排序算法 返回搜索结果。因此, 搜索引擎并不是对互联网进行直接搜索,而是对已抓取网页索引库的搜索 ,这也是能快速返回搜索结果的原因, 索引在其中扮演了最为重要的角色 ,索引算法的效率直接影响搜索引擎的效率,是评测搜索引擎是否高效的关键因素。 

网页爬行器、索引器、查询器 共同构成了搜索引擎的重要组成单元,针对特定的语言,如中文、韩文等,还需要分词器进行分 ,一般情况下, 分词器与索引器 一起使用创建特定语言的索引库。它们之间的协同关系如图1所示。 

开放源代码 的搜索引擎为用户提供了极大的透明性,开放的源代码、 公开的排序算法、随意的可定制性 ,相比于 商业搜索引擎 而言,更为用户所需要。目前, 开放源代码的搜索引擎项目 也有一些,主要集在中搜索引擎开发工具包与架构、Web搜索引擎、文件搜索引擎几个方面,本文概要介绍一下当前比较流行且相对比较成熟的几个搜索引擎项目。 

开源搜索引擎工具包 

1.Lucene 
Lucene是目前
最为流行的开放源代码全文搜索引擎工具包 ,隶属于 Apache基金会 ,由资深全文索引/检索专家Doug Cutting所发起,并以其妻子的中间名作为项目的名称。Lucene不是一个具有完整特征的搜索应用程序,而是一个专注于 文本索引和搜索 工具包 ,能够 为应用程序添加索引与搜索能力 。基于Lucene在索引及搜索方面的优秀表现,虽然由Java编写的Lucene具有天生的跨平台性,但仍被改编为许多其他语言的版本:Perl、Python、C++、.Net等。 
同其他开源项目一样,Lucene具有非常好的架构,能够方便地在其基础上进行研究与开发,添加新功能或者开发新系统。Lucene本身只支持文本文件及少量语种的索引,并且
不具备爬虫功能 ,而这正是Lucene的魅力所在,通过Lucene提供的丰富接口,我们可以根据自身的需要在其上添加具体语言的分词器,针对具体文档的文本解析器等,而这些具体的功能实现都可以借助于一些已有的相关开源软件项目、甚至是商业软件来完成,这也保证了 Lucene在索引及搜索方面的专注性 。目前,通过在Lucene的基础上加入爬行器、文本解析器等也形成了一些新的开源项目,如LIUS、Nutch等。并且 Lucene的索引数据结构已经成了一种事实上的标准 ,为许多搜索引擎所采用。 

2.LIUS 
LIUS即
Lucene Index Update and Search 的缩写,它是以Lucene为基础发展起来的一种 文本索引框架 ,和Lucene一样,同样可以看作 搜索引擎开发工具包 。它在Lucene的基础上作了一些相应的研究及添加了一些新的功能。LIUS借助于许多开源软件,可以 直接对各种不同格式/类型的文档进行文本解析与索引 ,这些文档格式包括MS Word、MS Excel、MS PowerPoing、RTF、PDF、XML、HTML、TXT、Open Office及JavaBeans等,对Java Beans的支持对于进行 数据库索引 非常有用,在用户进行 对象关系映射(如:Hibernate、JDO、TopLink、Torque等)的数据库 连接编程时会变得更加精确。LIUS还在Lucene的基础上增加了 索引更新功能 ,使 针对索引的维护功能 进一步完善。并且支持混和索引,可以把同一目录下与某一条件相关的所有内容整合到一起,这种功能对于需要对多种不同格式的文档同时进行索引时非常有用。 

3.Egothor 
Egothor是一款开源的高性能
全文搜索引擎 ,适用于基于全文搜索功能的搜索应用,它具有与Luccene类似的核心算法,这个项目已经存在了很多年,并且拥有一些积极的开发人员及用户团体。项目发起者Leo Galambos是捷克布拉格查理大学数学与物理学院的一名高级助理教授,他在博士研究生期间发起了此项目。 
更多的时候,我们把Egothor看作一个
用于全文搜索引擎的Java库 ,能够为 具体的应用程序 添加全文搜索功能。它提供了 扩展的Boolean模块 ,使得它能被作为Boolean模块或者Vector模块使用,并且Egothor具有一些其他搜索引擎所不具有的特有功能:它采用新的动态算法以有效提高索引更新的速度,并且支持 平行的查询方式 ,可有效提高查询效率。在Egothor的发行版中,加入 了爬行器、文本解析器 等许多增强易用性的应用程序,融入了Golomb、Elias-Gamma等多种高效的 压缩方法 ,支持多种常用文档格式的文本解析,如HTML、PDF、PS、微软Office文档、XLS等,提供了GUI的索引界面及 基于Applet或者Web的查询方式 。另外,Egothor还能被方便地配置成独立的搜索引擎、元数据搜索器、点对点的HUB等多种且体的应用系统。 

4.Xapian 
Xapian是基于
GPL 发布的搜索引擎开发库,它采用C++语言编写,通过其提供绑定程序包可以使Perl、Python、PHP、Java、Tck、C#、Ruby等语言方便地使用它。 
Xapian还是一个具有高适应性的
工具集 ,使开发人员能够方便地为他们的应用程序添加高级索引及搜索功能。它支持信息检索的概率模型及丰富的布尔查询操作。Xapian的发布包通常由两部分组成: xapian-core及xapian-bindings ,前者是核心主程序,后者是与其他语言进行绑定的程序包。 
Xapian为程序开发者提供了丰富的API及文档进行程序的编制,而且还提供了许多编程实例及一个基于Xapian的应用程序
Omega ,Omega由索引器及基于CGI的前端搜索组成,能够为HTML、PHP、PDF、PostScript、OpenOffice/StarOffice、RTF等多种格式的文档编制索引,通过使用Perl DBI模块甚至能为MySQL、PostgreSQL、SQLite、Sybase、MS SQL、LDAP、ODBC等关系数据库编制索引,并能以CSV或XML格式从前端导出搜索结果,程序开发者可以在此基础上进行扩展。 

5.Compass 
Compass是在Lucene上实现的开源搜索引擎架构,相对比于Lucene而言,提供
更加简洁的搜索引擎API 。增加了 索引事务处理 的支持,使其能够更方便地与数据库等事务处理应用进行整合。它更新时无需删除原文档,更加简单更加高效。资源与搜索引擎之间采用映射机制,此种机制使得那些已经使用了Lucene或者不支持对象及XML的应用程序迁移到Compass上进行开发变得非常容易。 
Compass还能
与Hibernate、Spring等架构进行集成 ,因此如果想在Hibernate、Spring项目中加入搜索引擎功能,Compass是个极好的选择。 

开源Web搜索引擎系统 

1.Nutch 
Nutch是Lucene的作者Doug Cutting发起的另一个开源项目,它是
构建于Lucene基础上的完整的Web搜索引擎系统 ,虽然诞生时间不长,但却以其优良血统及简洁方便的使用方式而广收欢迎。我们可以使用Nutch搭建类似 Google 的完整的搜索引擎系统,进行局域网、互联网的搜索。 
2.YaCy 
YaCy是一款
基于P2P(peer-to-peer)的分布式开源Web搜索引擎系统 ,采用Java语言进行编写,其核心是 分布在数百台计算机上的被称为YaCy-peer的计算机程序 ,基于P2P网络构成了YaCy网络,整个网络是一个分散的架构,在其中所有的YaCy-peers都处于对等的地位,没有统一的中心服务器,每个YaCy-peer都能独立的进行互联网的爬行抓取、分析及创建索引库,通过P2P网络与其他YaCy-peers进行共享,并且每个YaCy-peer又都是一个独立的代理服务器,能够对本机用户使用过的网页进行索引,并且采取多机制来保护用户的隐私,同时用户也通过本机运行的Web服务器进行查询及返回查询结果。 
YaCy搜索引擎主要包括五个部分,除普通搜索引擎所具有的爬行器、索引器、反排序的索引库外,它还包括了一个非常丰富的搜索与管理界面以及用于数据共享的P2P网络。 

开源桌面搜索引擎系统 

1.Regain 
regain是一款
与Web搜索引擎类似 的桌面搜索引擎系统,其不同之处在于regain不是对Internet内容的搜索,而是 针对自己的文档或文件的搜索 ,使用regain可以轻松地在几秒内完成大量数据(许多个G)的搜索。Regain采用了Lucene的搜索语法,因此支持多种查询方式,支持多索引的搜索及基于文件类型的高级搜索,并且能 实现URL重写及文件到HTTP的桥接 ,并且对中文也提供了较好的支持。 
Regain提供了两种版本:
桌面搜索及服务器搜索 。桌面搜索提供了对普通桌面计算机的文档与局域网环境下的网页的快速搜索。服务器版本主要安装在Web服务器上,为网站及局域网环境下的文件服务器进行搜索。 
Regain使用Java编写,因此可以实现跨平台安装,能安装于Windows、Linux、Mac OS及Solaris上。服务器版本需要JSPs环境及标签库(tag library),因此需要安装一个
Tomcat容器 。而桌面版 自带了一个小型的Web服务器 ,安装非常简单。 

2.Zilverline 
Zilverline是一款以Lucene为基础的桌面搜索引擎,采用了
Spring框架 ,它主要用于 个人本地磁盘及局域网内容的搜索 ,支持多种语言。Zilverline提供了丰富的文档格式的索引支持,如微软Office文档、RTF、Java、CHM等,甚至能够为归档文件编制索引进行搜索,如zip、rar及其他归档文件,在索引过程中,Zilverline从zip、rar、chm等归档文件中抽取文件来编制索引。Zilverline可以支持 增量索引 的方式,只对新文件编制索引,同时也支持定期自动索引,其索引库能被存放于Zilverline能够访问到的地方,甚至是DVD中。同时,Zilverline还支持文件路径到URL的映射,这样可以使用户 远程搜索本地文件 。 
Zilverline提供了个人及研究、商业应用两种许可方式,其发布形式为一个简单的war包,可以从其官方网站下载(
http://www.zilverline.org/ )。Zilverline的运行环境需要Java环境及Servlet容器,一般使用Tomcat即可。在确保正确安装JDK及Tomcat容器后只需将Zilverline的war包(zilverline-1.5.0.war)拷贝到Tomcat的webapps目录后重启Tomcat容器即可开始使用Zilverline搜索引擎了。

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值