`
- 浏览:
2146823 次
- 性别:
- 来自:
北京
-
lucene是java写的,以lucene为基础,有更多熟知的开源产品:zoie+sensei、solr、katta、elasticsearch、solandra等。
zoie用于实时索引,zoie+sensei实现了分布式索引。
solr、elasticsearch类似,都实现了分布式索引、近实时索引等
solandra基于solr和nosql数据库cassandra的分布式搜索引擎,底层上重写了solr索引的存储,把索引数据保存到cassandra。
sphinx是c++写的,有极高的写索引效率,很好的和mysql集成,比如编译mysql的时候可以作为一个模块,这样在用sql中用like的地方 就可以直接替换成sphinx语法了,真爽。
ps:理解lucene的原理后,重写一个lucene并不难,难的是如何复制一个lucene活跃的社区。
---------------------------------------------------------------------------------------
Sphinx是一个俄国人开发的搜索引擎,
Sphinx建索引速度是最快的,比Lucene快9倍以上。因此,Sphinx非常适合做准实时搜索引擎。
它的主要特点是:
一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。ferret也望尘莫及,更不要说lucene了。
二、和数据库集成性很好
Sphinx通过配置文件可以自行读取数据库信息做索引,不依赖任何外部的应用程序,并且可以作为一个daemon进程启动,支持分布式检索,并发响应性能很好。因此很多过去使用ferret的人因为并发检索的问题都改用Sphinx了。
三、可以做MySQL的全文检索
MySQL的数据库引擎是可插拔的结构,Sphinx开发了一个SphinxSE数据库引擎,可以在编译MySQL的时候直接编译到MySQL里面去,这样的话,可以在数据库级别支持高性能的全文检索,那么你可以以如下SQL方式去全文检索了:
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
很棒吧。
四、RoR支持也很棒
有一个acts_as_sphinx插件,类似acts_as_ferret,集成到RoR里面很简单。
Sphinx支持UTF-8编码的分词,但是他自己的文档上面说仅仅支持英文和俄文的分词,现在也有插件支持中文的了。
他和Lucene 的比较:
Lucene作为一个全文检索引擎,其具有如下突出的优点:
(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。
MG4J 是另一个搜索engine 。与Lucene 主要区别是,它提供了cluster 功能,具有更OO的设计方式。
MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码技术。
Sphinx支持高速建立索引(可达10MB/秒,而Lucene建立索引的速度是1.8MB/秒)
高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)
高扩展性(实测最高可对100GB的文本建立索引,单一索引可包含1亿条记录)
支持分布式检索
支持基于短语和基于统计的复合结果排序机制
支持任意数量的文件字段(数值属性或全文检索属性)
支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”)
支持作为Mysql的存储引擎
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
搜几下首先集合了更大实用搜索引擎或网站的搜索接口,实现一个关键字,同时查询多家资源。搜几下-上网搜索、找资料必备工具,为您准备了最先进的搜索引擎,让您搜索查找资料更加方便。使用搜几下您可以查找:百科、...
这几年nodejs越来越火爆,js程序员们终于可以不局限于浏览器那一亩三分地了,很多以前由java,c等实现的东西纷纷有了nodejs版本,我也随波逐流一把,写了一个nodejs的搜索引擎addon 这个开源addon其实是对我几年前写...
对服务器要求低(租个几百元的空间就可以运行),很适合地方网站站长,低成本拥有自己的搜索引擎。 软件授权:永久免费开源 对服务器要求低,租个几百元的空间就可以运行 很适合地方网站站长,低成本拥有自己的...
使用前请确认您的电脑上已经正确安装了 ...template目录下的.html页面为模板文件,使用者可以通过修改这几个模板达到修改网页界 面与网站统一的目的; 官方QQ群:193572750 网址:http://jwsearchengine.sinaapp.com
对服务器要求低(租个几百元的空间就可以运行),很适合地方网站站长,低成本拥有自己的搜索引擎。 产品优势 对服务器要求低,租个几百元的空间就可以运行 很适合地方网站站长,低成本拥有自己的搜索引擎。简单设置...
搜几下首先集合了更大实用搜索引擎或网站的搜索接口,实现一个关键字,同时查询多家资源。搜几下-上网搜索、找资料必备工具,为您准备了最先进的搜索引擎,让您搜索查找资料更加方便。使用搜几下您可以查找:百科、...
Sphider 是一个完美的带有蜘蛛的搜索引擎程序 继Sphider v1.3.4 完美汉化版后,又对一关于IIS支持的重大BUG问题给予修补。 增加了很多特色功能, 数据结构进行重大优化, 版面做了较大的改进更方面修改,内置几...
如今互联网资源迅速膨胀,搜索引擎能够...的基本工作原理,分析网页抓取模块的工作流程,研究开源网络蜘蛛Heritrix 的几个关 键组件,在充分了解Heritrix 构架的基础上扩展Extractor 组件,成功实现个性化的抓 取逻辑。
有很多笔记工具,但是没有全文搜索,易于参考和引用已经有几个开源搜索引擎,但是配置和设置非常复杂有许多文档管理工具,但是其中大多数只能管理文件,而不能管理页面或段落为什么它不能将所有这些方便的功能集成...
花费了我两周的时间作出来的一个小型的新闻搜索引擎,核心部分采用开源项目Lucene,整个系统分为一下几部分: 1.网页采集 2.网页解析 3.分词及建立索引 4.相关推荐实现 5.查询处理 6.前台UI设计 个人感觉还不错,...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
元搜索引擎原搜索引擎是通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的搜索引擎来实现检索操作,是对分布于网络的多种检索工具的全局控制机制。自己没搜索引擎,又想要大规模的数据源,怎么办?...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
结合中文文本特点,单独定制开发的一款搜索引擎框架 框架实现了multi-core共享solr,独立的索引创建 部署,支持多种格式数据接口,基本搜索接口 搜索结果多维度评价等功能 本框架中几个子工程需要使用maven2打包 编译。...
优化搜索引擎,包括meta标签和URL重写的选项 可添加多个管理员和指定超级用户 多达上百的网站全局设置项目选项,使系统更易操控 分销会员管理和分销会员统计 网站横幅广告Banner管理 强大的扩展搜索选项...
【信息检索课程设计】sdu新闻网站全站爬取+索引构建+搜索引擎 以下是检索的基本要求:可以利用lucene、nutch等开源工具,利用Python、Java等编程语言,但需要分别演示并说明原理。 Web网页信息抽取 以山东大学新闻...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
大多数可用的索引结构都对应以下几点权衡:搜索时间搜索质量每个索引向量使用的内存大小训练时间无监督训练对外部数据的需求获取Faiss 完整版文档完整文档(包括一个指南)可以参阅 GitHub 的 wiki 页:...