大数据是一个包括一切的术语,指的是数据集很大很复杂,他们需要特别设计的硬件和软件工具。数据集通常是 T 或者更大级别。这些数据集从各种各样的来源创建,包括传感器,收集气象信息,公开可用的信息,如杂志、报纸、文章。还包括购买交易记录、网络日志、医疗记录、军事侦察、视频和图像档案和大规模的电子商务等等。
要分析这些数据需要专门的软硬件,本文介绍 7 个开源的搜索引擎适合用于大数据处理:
Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。 Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
特性:
- 索引过程:
- 在现在流行的硬件平台上每个小时可处理超过 150GB 的数据
- 内存占用小,只需 1MB 的堆内存
- 增量索引和批量索引速度一样快
- 索引大小约为文本索引的 20-30% 大小
- 静态索引修剪
- 搜索算法:
- 范围搜索 - 优先返回最佳结果
- 很多强大的查询类型:短语查询、通配符查询、近似查询、范围查询等
- 可单独针对某个字段查询
- 可单独根据某个字段排序
- 多索引搜索并合并搜索结果
- 允许同步更新索引和搜索
- 灵活的门面搜索、高亮显示、结果集的联合和分组
- 快速,低内存占用和容错
- 可插入式排名模型,包括 VSM 和 Okapi MB25
- 可配置的存储引擎
- 跨平台解决方案
- 100% 纯 Java
- 其他语言提供索引兼容的实现
2. Apache Solr
Apache Solr (读音: SOLer) 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>
进行描述。
Elastic Search 是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
4. Sphinx
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
5. Xapian
Xapian是一个用C++编写的全文检索程序,他的作用类似于Java的lucene。尽管在Java世界lucene已经是标准的全文检索程序,但是C/C++世界并没有相应的工具,而Xapian则填补了这个缺憾。
6. Nutch
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益.这显然 不利于广大Internet用户.
Nutch为我们提供了这样一个不同的选择. 相对于那些商用的搜索引擎, Nutch作为开放源代码 搜索引擎将会更加透明, 从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外, 有的搜索引擎依照网站所付的 费用, 而不是根据它们本身的价值进行排序. 与它们不同, Nucth没有什么需要隐瞒, 也没有 动机去扭曲搜索的结果. Nutch将尽自己最大的努力为用户提供最好的搜索结果.
Nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. 为了完成这一宏伟的目标, Nutch必须能够做到:
- 每个月取几十亿网页
- 为这些网页维护一个索引
- 对索引文件进行每秒上千次的搜索
- 提供高质量的搜索结果
- 以最小的成本运作
7. LGTE
LGTE 是基于 Lucene 提供了扩展 Lucene API 用于集成很多服务,例如片段生成、查询扩展等等,并提供了一组单元测试。
特性包括:
- 提供了简单和高效的 Lucene API 的抽象层
- 在主题、时间和地理方面支持集成检索和排序的依据
- 支持 Lucene 标准的检索模型,提供更高级的概率检索方法
- 支持 Rochio 查询扩展
- 提供了用于 IR 仿真体验的框架 (例如处理 CLEF/TREC 主题)
- 包含 trec_eval 工具的 Java 替换版
- 包含一个简单的测试应用,用来搜索 Braun Corpus 或 Cranfield Corpus
- TREC/CLEF 仿真框架 - 集合索引的工具,运行主题搜索并使用 treckeval 格式输出结果
- 使用不同文件夹提供隔离字段
- 通过外键字段提供层次化的索引
- 提供用于使用 Yahoo PlaceMaker 解析文档的类
via linuxlinks
相关推荐
这个"C# 开源搜索引擎"项目为学习者提供了一个实践搜索引擎开发的完整环境,涵盖了从基础的网络编程到复杂的文本处理和分布式系统设计等多个方面,对于提升C#开发者的技术能力大有裨益。通过研究这个项目,你可以...
这个C#开源搜索引擎项目利用了C#语言的灵活性和高性能,结合Apache Lucene.Net进行全文检索,通过log4net进行日志管理,使用ANTLR处理语言结构,StringTemplate生成动态输出,以及自定义的类库(如ShootSearch.*)来...
《国内首例开源搜索引擎分词:云寻觅的探索与实践》 在信息化时代,搜索引擎作为获取信息的重要工具,其核心之一就是分词技术。分词是自然语言处理中的基础步骤,它将连续的文本流分割成具有独立意义的词语,从而为...
总的来说,这个C#开源搜索引擎项目集成了多个组件,涵盖了网络爬取、内容处理、索引构建、查询解析和结果展示等多个环节,提供了一个全面的搜索引擎解决方案。对于想要学习和研究搜索引擎技术的开发者来说,这是一个...
迅龙中文Web搜索引擎是一款由C#编程语言编写的开源搜索引擎程序,它为开发者提供了一种高效、易用的方式来实现中文网页的索引与检索功能。这款软件的核心在于其强大的文本处理和搜索算法,能够有效地处理中文分词和...
开源的搜索引擎工具包和Web搜索引擎系统为开发者提供了构建高效、自定义化的搜索解决方案的基础。本文将介绍几个知名的开源项目,包括Lucene、LIUS、Egothor和Xapian。 1. **Lucene** Lucene是由Apache基金会维护...
Ambar是一个功能强大的开源文档搜索引擎,它集成了自动抓取、光学字符识别(OCR)和实时全文搜索功能,极大地提升了文档处理和检索的效率。 ### 1. Node.js介绍 Node.js是一个基于Chrome V8引擎的JavaScript运行...
开源搜索引擎Sphider是一款专为小型到中型网站设计的搜索引擎解决方案,由PHP编写,以MySQL作为后端数据库。它的核心优势在于其轻量级、高效且易于部署和定制,使得许多不懂复杂编程的网站管理员也能为其网站添加...
在本教程中,我们将深入探讨如何利用开源搜索引擎技术快速构建一个全文搜索平台。开源搜索引擎以其灵活性、可扩展性和成本效益,已经成为许多企业和开发者构建高效检索系统的首选方案。本实战教程将带你一步步实现这...
通过深入研究和理解这个开源项目,开发者不仅可以学习到如何构建一个MP3搜索引擎,还能提升PHP编程、Web开发、数据抓取等方面的技术能力。对于想涉足音乐类Web应用开发的个人或团队,这是一个宝贵的实践平台。
在IT领域,尤其是在大数据处理和分析的范畴内,Hadoop是一个至关重要的开源框架。这个项目“基于Hadoop搜索引擎在线处理”旨在演示如何将Hadoop与Web应用相结合,以实现大规模数据的实时或近实时搜索功能。以下是...
Zettair是一款用C语言编写的开源搜索引擎,它提供了对文本、图像以及二进制文件的全面索引和检索能力。作为一个轻量级且高效的搜索解决方案,Zettair适用于各种场景,包括小型到中型的数据集,尤其适合那些对资源...
C++开源搜索引擎Xapian是一个高效、可扩展的库,专为全文搜索和信息检索设计。本篇将介绍如何入门Xapian的开发,带你了解其核心概念、安装过程、基本用法以及如何通过C++接口进行操作。 首先,Xapian的核心特性包括...
Go-riot是一个基于Go语言构建的开源分布式搜索引擎,它的设计目标是实现简单高效,这使得它在处理大规模数据检索时具备高性能和可扩展性。在深入探讨Go-riot之前,我们先来了解一下Go语言和分布式系统的基础知识。 ...
"基于PHP的Yioopphp开源搜索引擎系统源码.zip" 这个标题揭示了我们讨论的主题是一个使用PHP编程语言开发的开源搜索引擎系统。Yioopphp是这个系统的名称,它是一个用于创建自定义搜索引擎的平台,允许用户抓取、索引...
Seeknove是一个基于PHP开发的开源搜索引擎整合系统,它的核心目标是帮助用户更方便地集成和管理多种不同的搜索引擎,提供一站式的搜索解决方案。这个系统允许开发者或者网站管理员将多个搜索引擎的结果进行聚合,...