`
yangfuchao418
  • 浏览: 167225 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

常用开源搜索引擎工具

阅读更多

以下为个人整理,当然并没有把所有的都研究完。有些仅仅是兴趣而已。
elasticsearch:是一个分布式基于云计算的搜索引擎。主要包括以下特性: 
      1.分布式、高可用的搜索引擎 
     2.支持索引分区,并可以灵活配置 
     3.每个节点可以有多个备份,这样容错性好 
     4.多类型,每个类型可以多索引 
     5.丰富的api,支持RESTful方式的api 
     6.不需要对模型进行预定义,模型可以根据类型来定制 
    7.接近于实时搜索(个人觉得这点应该是个看点,实时搜索越来越重要,如Facebook,twitter等这类网站) 
    8.构建于Lucene之上


katta:是可扩展性、容错机制、分布式的、并且是准实时的。
   1.可以轻松构建超大服务集群,拥有自我复制功能、索引碎片机制,承载高访问量和存储大数据量。
   2.索引碎片可以  有 不同的格式, 当前只支持lucene索引文件和hadoop mapfiles.

   3.可以轻松构建大数据量和高负载的环境
   4.拆分lucene索引或者hadoop map  files成文件碎片存放到多台服务器上
   5.自动复制碎片功能,从而达到高性能和容错功能
    6.很容易扩展集群 Master故障切换
   7.快速的、轻量级的、非常容易整合
    8.在hadoop分布式集群上运行的很好

Lucene作为一个全文检索引擎,其具有如下突出的优点:
  (1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容
      系统或者不同平台的应用能够共享建立的索引文件。
  (2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索
        引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
  (3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
  (4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,
       用户扩展新的语言和文件格式,只需要实现文本分析的接口。
  (5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,

             Lucene的查询  实现中默认实现了布尔操作、模糊查询、分组查询等等。

Sphinx:支持高速建立索引(可达10MB/秒,而Lucene建立索引的速度是1.8MB/秒)
   高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)
   高扩展性(实测最高可对100GB的文本建立索引,单一索引可包含1亿条记录)
   支持分布式检索
   支持基于短语和基于统计的复合结果排序机制
   支持任意数量的文件字段(数值属性或全文检索属性)
  支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”)
   支持作为Mysql的存储引擎

Heritrix: 是个归档爬虫 -- 用来获取完整的、精确的、站点内容的深度复制。

    1.获取图像以及其他非文本内容。抓取并存储相关的内容。

    2.对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。

    3.爬虫通过Web用    户界面启动、监控、调整,允许弹性的定义要获取的URL。


Nutch :是一个开源的、Java 实现的搜索引擎。它提供了搜索引擎所需的全部工具。包括全文搜索和Web爬

虫。 

爬取部分:

     1 . 创建一个新的WebDb (admin db -create).

  2. 将抓取起始URLs写入WebDB中 (inject).

  3. 根据WebDB生成fetchlist并写入相应的segment(generate).

  4. 根据fetchlist中的URL抓取网页 (fetch).

  5. 根据抓取网页更新WebDb (updatedb).

  6. 循环进行3-5步直至预先设定的抓取深度。

  7. 根据WebDB得到的网页评分和links更新segments (updatesegs).

  8. 对所抓取的网页进行索引(index).

  9. 在索引中丢弃有重复内容的网页和重复的URLs (dedup).

  10. 将segments中的索引进行合并生成用于检索的最终index(merge).

搜索部分: 
   1. WebDB:包含pages和links的网络图。

    2. segments集:包含了fetcher从web中获取的原始数据。

   3. 合成的index:对segments进行索引和消重分析得到。 

备注:个人感觉一次爬完才能生产索引,特别郁闷(也许可以还有其他的方式?)。现在nutch2.0的蓝

图也出来了,有比较大的手术。nutch的存储系统Hadoop已经远远超过nutch本身了。分布式,并行计算,

海里数据排序,统计处理Hadoop很适合。


solr:solr虽然做个项目,可是因为不是自己负责,竟然没看过多少。


Zoie:(引用)通常的检索系统 中,建索引和查询是分开的,即建索引是离线的,新的 索引会以一定频率(比如每隔5分钟)供查询端使用。对于一些站内检索来说,这种延迟性使得:不需要建索引的速度足够快(只要能跟的上提交频率就行),查询 的效果不必完全精确。而要取得实时检索效果,典型的思路是:建索引和查询是在一个进程内,这样每一次的添加索引都会被下一次的查询用到,但这里面的细节还 是需要好好琢磨解决 的,下面就给出Zoie的基于Lucene的解决方案 :索引分两种,ram index和disk index。建索引的过程是:首先建立ram index,因为是内存操作,这个过程通常较快,建完后会重新打开IndexReader,使查询端能看到最新的索引;当内存中的索引文档 数达到阈值(10000)或者间隔时间达到阈值(自 定义),一个后台线程就将ram index合并到disk index里去,完成后清空已经无用的ram index,并重新打开disk index的IndexReader供查询使用(这里面有个autowarm IndexReader的过程)。特别指出的是,Zoie的ram index有两个,这使得当一个ram index在和disk index做合并操作时(这个过程可能会很耗时),另一个ram index仍能提供建索引的操作。对于查询,使用的索引就包括两个ram index和一个disk index,所以只要索引在内存里建好,就能查询到最新的数据

Lily:

         Lily以NoSQL技术为主题,是建立在云计算上的内容仓库(content repository)。它是基于Apache的 HBase(存储)和Solr(索引/搜索),并提供了大型内容集合存储与检索的解决方案。可运用在 门户网站,内容管理系统,及时搜索,档案应用,文案管理,等等。

http://www.lilyproject.org/lily/index.html

分享到:
评论

相关推荐

    利用开源工具构造搜索引擎

    在构建一个搜索引擎的过程中,我们可以利用一系列的开源工具来节省时间和精力。这个主题主要涉及三个关键标签:开源、搜索引擎和相关的工具如Larbin与Lucene。以下是对这些知识点的详细阐述: 1. **搜索引擎体系...

    骆卫华-利用开源工具构造小型搜索引擎

    ### 骆卫华-利用开源工具构造小型搜索引擎 #### 一、课程背景与目标 《信息检索技术与系统》是一门旨在培养学生信息意识、获取信息能力、信息素养和创新能力的专业课程。本课程的重点在于让学生深入理解信息检索的...

    开源搜索网站开源搜索网站

    开源搜索引擎通常由全球开发者社区共同维护,为用户提供自定义、可扩展和高度可配置的搜索解决方案。本文将深入探讨开源搜索网站的相关知识点,包括它们的工作原理、主要优势、常用开源项目以及如何利用这些项目搭建...

    万能的搜索引擎免费代码

    7. **免费代码与开源**:开源搜索引擎项目如Elasticsearch、Solr和XunSearch提供了强大的搜索功能,并且允许用户自由使用和修改源代码。它们通常拥有活跃的社区支持,便于开发者解决问题和改进功能。 8. **自然语言...

    开源企业搜索引擎SOLR的应用教程

    综上所述,Apache Solr作为一个成熟且强大的开源搜索引擎,在企业级应用中有广泛的应用前景。通过深入理解Solr的工作原理、配置方法和使用技巧,开发者可以充分发挥其潜力,为企业提供高效、可靠的搜索服务。

    lasticsearch(简称ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Luce

    Elasticsearch(简称 ES)是一款基于 Apache Lucene 的高性能、开源搜索引擎。它不仅在开源社区中享有盛誉,在专有软件领域也有广泛的应用。Lucene 被认为是当前最先进、性能最佳且功能最全面的搜索引擎库之一。 ##...

    中文搜索引擎

    Apache Lucene是一个高性能、全功能的开源搜索引擎库,提供索引和搜索功能。它支持多种数据源,包括文件系统、数据库等,并且具有高度可配置性和可扩展性。Lucene提供了丰富的API,开发者可以根据需求定制搜索功能,...

    Lucene+Heritrix(搜索引擎开发)

    在探究如何使用Lucene和Heritrix构建搜索引擎之前,我们需要了解这两个工具分别扮演的角色及其在搜索引擎开发中的作用。 Lucene是一个高性能、可伸缩、可扩展的全文检索库,它是用Java编写的开源项目。Lucene的目的...

    开源压力测试工具.pdf

    此外,它还可以生成网站地图并自动提交到顶级搜索引擎。 6. Apache JMeter:JMeter是Apache基金会的一个纯Java桌面应用,最初为Web/HTTP测试设计,现在支持多种测试模块。它可以用于HTTP、SQL数据库(通过JDBC)等...

    深入搜索引擎

    搜索引擎是互联网时代的核心技术之一,它不仅帮助用户在浩瀚的数据海洋中找到所需的信息,也是企业和组织处理内部大量非结构化数据的关键工具。以下是关于这个主题的一些关键知识点: 一、信息压缩 1. 数据压缩原理...

    这是一个小型的网络空间搜索引擎

    标题中的“小型网络空间搜索引擎”指的是一个专门用于检索网络上特定空间信息的工具,而描述进一步揭示了这个搜索引擎是基于Elasticsearch构建的。Elasticsearch是一个强大的、分布式、开源的全文搜索引擎,常用于大...

    入门搜索引擎(原码+环境jar包+运行说明文档)

    搜索引擎是信息检索的重要工具,本资源提供了一个入门级的搜索引擎实现,涵盖了网络爬虫和基于Lucene的搜索索引构建。下面将详细讲解其中涉及的关键技术。 首先,我们来看看网络爬虫部分。网络爬虫是一种自动抓取...

    人工智能-项目实践-搜索引擎-搜索引擎分析与设计 - 网络小说搜索 协同过滤

    搜索引擎作为信息检索的核心工具,其效率和精准度直接影响用户的体验。在这里,我们将使用Python进行网页爬虫来获取网络小说的数据,并通过协同过滤算法为用户提供个性化的搜索结果和推荐榜单。 首先,搜索引擎的...

    人工智能-项目实践-搜索引擎-针对于JDK1.8的文档做的搜索引擎

    8. **Lucene库**:作为Java中最常用的全文搜索引擎库,Lucene提供了构建搜索引擎所需的各种工具和接口。包括索引构建、查询解析、结果排序等功能。在项目中,我们需要深入学习和熟练运用Lucene库。 9. **搜索结果...

    Lucene+Nutch搜索引擎开发

    通过以上步骤,我们不仅了解了Lucene和Nutch的基本概念及其核心功能,还深入探讨了如何将这两个工具结合使用来构建一个完整的搜索引擎。当然,在实际应用中还需要考虑更多的因素,比如系统的稳定性、安全性等问题。...

    WEB搜索引擎分析设计与实现毕业论文.pdf

    因此搜索引擎的需求应运而生,成为了学习、工作和休闲活动中的一个必不可少的工具。搜索引擎允许用户通过它获取自己想要找的资料或信息。 接下来,论文详细分析了搜索引擎的工作原理。搜索引擎的一个核心功能是索引...

Global site tag (gtag.js) - Google Analytics