科学网

 找回密码
  注册

tag 标签: 全文检索

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

全文检索引擎以及开源引擎汇总
linqy 2017-12-7 15:36
全文 搜索引擎 是目前广泛应用的 主流 搜索引擎。它的工作原理 是计算机 索引 程序通过扫描文章中的每一个词,对每一个词建立一个 索引 ,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户 的检索方式。这个过程类似于通过字典中的检索字表查字的过程。 功能: 全文检索系统 是 按照全文检索理论建立起来的用于提供全文检索服务的软件系统。一般来说, 全文检索需要具备 建立索引和提供查询 的基本功能 ,此外现代的全文检索系统还需要具有方便的用户接口、面向WWW的开发接口、二次应用开发接口等等。功能上,全文检索系统核心具有建立索引、处理查询返回结果集、增加索引、优化索引结构等等功能,外围则由各种不同应用具有的功能组成。 结构: 结构上,全文 检索系统 核心具有索引引擎、查询引擎、文本分析引擎、对外接口等等,加上各种外围应用系统等等共同构成了全文检索系统。 最常用的全文 搜索引擎 有百度、 谷歌 (Google)等。与之相对应的是目录索引类搜索引擎 。 分类: 全文检索的方法主要分为 按字检索和按词 检索两种 。 按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组合。对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上是合一的,而中文中字与词有很大分别。 按词检索指对文章中的词,即语义单位建立索引,检索时按词检索,并且可以处理同义项等。英文等西方文字由于按照空白切分词,因此实现上与按字处理类似,添加同义处理也很容易。中文等东方文字则需要切分字词,以达到按词索引的目的,关于这方面的问题,是当前全文检索技术尤其是中文全文检索技术中的难点。 技术特点: 搜索引擎 面临大量的用户检索需求(几十~几千点击/秒),要求搜索引擎在检索程序的设计上要高效,尽可能的将大运算量的工作在索引建立时完成,使检索时的运算压力能够承受,一般的数据库查询技术无法实现全文搜索的时间要求。 目前全文 搜索引擎 通常使用 倒排索引 技术 。倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。 有两种不同的反向 索引 形式 : 一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。 一个单词的水平反向索引(或者完全反向索引)又 包含每个单词在一个文档中的位置。后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。 13中开源额全文检索引擎汇总 1. Lucene Lucene的开发语言是Java,也是Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中文分词引擎,需要自己去实现,因此用Lucene去做一个搜素引擎需要自己去架构.另外它不支持实时搜索,但linkedin和twitter有分别对Lucene改进的实时搜素. 其中Lucene有一个C++移植版本叫CLucene,CLucene因为使用C++编写,所以理论上要比lucene快. 官方主页: http://lucene.apache.org/ CLucene官方主页: http://sourceforge.net/projects/clucene/ 2. Sphinx Sphinx是一个用C++语言写的开源搜索引擎,也是现在比较主流的搜索引擎之一,在建立索引的事件方面比Lucene快50%,但是索引文件比Lucene要大一倍,因此Sphinx在索引的建立方面是空间换取事件的策略,在检索速度上,和lucene相差不大,但检索精准度方面Lucene要优于Sphinx,另外在加入中文分词引擎难度方面,Lucene要优于Sphinx.其中Sphinx支持实时搜索,使用起来比较简单方便. 官方主页: http://sphinxsearch.com/about/sphinx/ 3. Xapian Xapian是一个用C++编写的全文检索程序,它的api和检索原理和lucene在很多方面都很相似,算是填补了lucene在C++中的一个空缺. 官方主页: http://xapian.org/ 4. Nutch Nutch是一个用java实现的开源的web搜索引擎,包括爬虫crawler,索引引擎,查询引擎. 其中Nutch是基于Lucene的,Lucene为Nutch提供了文本索引和搜索的API. 对于应该使用Lucene还是使用Nutch,应该是如果你不需要抓取数据的话,应该使用Lucene,最常见的应用是:你有数据源,需要为这些数据提供一个搜索页面,在这种情况下,最好的方式是直接从数据库中取出数据,并用Lucene API建立索引. 官方主页: http://nutch.apache.org/ 5. DataparkSearch DataparkSearch是一个用C语言实现的开源的搜索引擎. 其中网页排序是采用神经网络模型. 其中支持HTTP,HTTPS,FTP,NNTP等下载网页.包括索引引擎,检索引擎和中文分词引擎(这个也是唯一的一个开源的搜索引擎里有中文分词引擎).能个性化定制搜索结果,拥有完整的日志记录. 官方主页: http://www.dataparksearch.org/ 6. Zettair Zettair是根据Justin Zobel的研究成果为基础的全文检索实验系统.它是用C语言实现的. 其中Justin Zobel在全文检索领域很有名气,是业界第一个系统提出倒排序索引差分压缩算法的人,倒排列表的压缩大大提高了检索和加载的性能,同时空间膨胀率也缩小到相当优秀的水平. 由于Zettair是源于学术界,代码是由RMIT University的搜索引擎组织写的,因此它的代码简洁精炼,算法高效,是学习倒排索引经典算法的非常好的实例. 其中支持linux,windows,mac os等系统. 官方主页: http://www.seg.rmit.edu.au/zettair/about.html 7. Indri Indri是一个用C语言和C++语言写的全文检索引擎系统,是由University of Massachusetts和Carnegie Mellon University合作推出的一个开源项目. 特点是跨平台,API接口支持Java,PHP,C++. 官方主页: http://www.lemurproject.org/indri/ 8. Terrier Terrier是由School of Computing Science,Universityof Glasgow用java开发的一个全文检索系统. 官方主页: http://terrier.org/ 9. Galago Galago是一个用java语言写的关于文本搜索的工具集. 其中包括索引引擎和查询引擎,还包括一个叫TupleFlow的分布式计算框架(和google的MapReduce很像).这个检索系统支持很多Indri查询语言. 官方主页: http://www.galagosearch.org/ 10. Zebra Zebra是一个用C语言实现的检索程序,特点是对大数据的支持,支持EMAIL,XML,MARC等格式的数据. 官方主页: https://www.indexdata.com/zebra 11. Solr Solr是一个用java开发的独立的企业级搜索应用服务器,它提供了类似于Web-service的API接口,它是基于Lucene的全文检索服务器,也算是Lucene的一个变种,很多一线互联网公司都在使用Solr,也算是一种成熟的解决方案. 官方主页: http://lucene.apache.org/solr/ 12. Elasticsearch Elasticsearch是一个采用java语言开发的,基于Lucene构造的开源,分布式的搜索引擎. 设计用于云计算中,能够达到实时搜索,稳定可靠. Elasticsearch的数据模型是JSON. 官方主页: http://www.elasticsearch.org/ 13. Whoosh Whoosh是一个用纯python写的开源搜索引擎. 官方主页: https://bitbucket.org/mchaput/whoosh/wiki/Home
个人分类: 科研笔记|3459 次阅读|0 个评论
Lucene全文搜索以及实例
linqy 2017-7-25 10:16
全文搜索在日常生活中应用比较广,本在在检索相关信息的时候,看了比较的好的资料,里面给出了较好的讲解和实例,给出链接,以便日后在查看。 Apache Lucene初探 链接: http://www.cnblogs.com/xing901022/p/3933675.html Lucene学习总结之一:全文检索的基本原理 http://blog.csdn.net/forfuture1978/archive/2009/10/22/4711308.aspx Lucene学习总结之二:Lucene的总体架构 http://blog.csdn.net/forfuture1978/archive/2009/10/30/4745802.aspx Lucene学习总结之三:Lucene的索引文件格式(1) http://blog.csdn.net/forfuture1978/archive/2009/12/10/4981893.aspx Lucene学习总结之三:Lucene的索引文件格式(2) http://blog.csdn.net/forfuture1978/archive/2009/12/10/4976793.aspx Lucene学习总结之三:Lucene的索引文件格式(3) http://blog.csdn.net/forfuture1978/archive/2009/12/10/4976794.aspx Lucene学习总结之四:Lucene索引过程分析 http://www.cnblogs.com/forfuture1978/archive/2010/02/02/1661439.html Lucene学习总结之四:Lucene索引过程分析(2) http://blog.csdn.net/forfuture1978/archive/2010/02/02/5279197.aspx Lucene学习总结之四:Lucene索引过程分析(3) http://blog.csdn.net/forfuture1978/archive/2010/02/02/5279199.aspx Lucene学习总结之四:Lucene索引过程分析(4) http://blog.csdn.net/forfuture1978/archive/2010/02/02/5279200.aspx Lucene学习总结之五:Lucene段合并(merge)过程分析 http://blog.csdn.net/forfuture1978/article/details/5351167 Lucene学习总结之六:Lucene打分公式的数学推导 http://blog.csdn.net/forfuture1978/article/details/5353126 Lucene学习总结之七:Lucene搜索过程解析(1) http://blog.csdn.net/forfuture1978/archive/2010/04/04/5449930.aspx Lucene学习总结之七:Lucene搜索过程解析(2) http://blog.csdn.net/forfuture1978/archive/2010/04/04/5449933.aspx Lucene学习总结之七:Lucene搜索过程解析(3) http://blog.csdn.net/forfuture1978/archive/2010/04/04/5449939.aspx Lucene学习总结之七:Lucene搜索过程解析(4) http://blog.csdn.net/forfuture1978/archive/2010/04/04/5449943.aspx Lucene学习总结之七:Lucene搜索过程解析(5) http://blog.csdn.net/forfuture1978/archive/2010/04/04/5449950.aspx Lucene学习总结之七:Lucene搜索过程解析(6) http://blog.csdn.net/forfuture1978/archive/2010/04/04/5449957.aspx Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser(1) http://blog.csdn.net/forfuture1978/article/details/5568728 Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser(2) http://blog.csdn.net/forfuture1978/article/details/5568731
个人分类: 科研笔记|1336 次阅读|0 个评论
全文检索系统——中信所研究生《情报分析技术》第七次课
热度 1 huabolin 2011-5-4 10:49
本次课为理论与实践结合课。同上次课一样,按照 3I 思路开展,即介绍原理、模仿实验、探讨改进。 首先以 CNKI 为例讲述全文检索系统的实现原理;然后带领大家构建一个简单的全文检索系统实例,实现全文检索的基本功能;最后以三大全文数据库商(清华同方、万方数据、重庆维普)为例探讨全文检索的问题及发展趋势。具体如下: 原理讲述( Introduction ):全文检索系统的原理与现有系统。 模仿实验( Imitation ):实验环境、工具及过程,注意总结实验过程中的问题。 探讨改进( Innovation ):评判现有系统的问题,探讨全文检索的发展趋势。 课件如下: 第七讲 全文检索系统原理与实例.pdf
个人分类: 信息检索|3622 次阅读|1 个评论
《文本信息分析与全文检索技术》书介
热度 2 huabolin 2008-11-5 16:55
化柏林 《文本信息分析与全文检索技术》一书首先探讨情报学的核心技术,接着对文本信息分析的内容、过程与方法进行论述,然后从核心算法、关键技术、技术实例、发展趋势等方面对文本信息分析技术与全文检索技术进行了剖析与探讨。主要内容包括中文分词与语法分析、文献计量分析技术、网络搜索引擎原理与实例、全文检索技术与实例等,对一些前沿专题信息抽取、自动问答、列表搜索、知识抽取、辅助审稿、对联生成等进行了探讨。全书共四部分,十二章。其逻辑框架如下图所示。 本书内容新颖、观点独特、案例详实,注重用实践阐释理论,可以作为情报学研究生的教材,也可 供情报研究人员参考。 另外,本书还论及以下十个观点: 1.无处不在IPO 2.万事万物皆检索 3.检索过程与爬行无关 4.资源建设比算法更重要 5.检索词短了,结果未必多 6.分类何其难,分类思想无处不在 7.智能系统归根到底无非知识库与搜索 8.智能是相对的,知之为知识,不知为智能 9.智能系统在受限领域要比开放领域更容易成功 10.本来无法达到百分之百的事情,那就别期望百分之百 书的框架按照主题划分,未能按照以上十个论点进行组织,对上述论点的论述亦不十分明显,作者将通过博文或其他形式逐个进行阐述。 《文本信息分析与全文检索技术》目录
个人分类: 著作评析|7370 次阅读|7 个评论
从检索技术的实现看三大全文数据库的发展
huabolin 2008-10-24 12:31
(发表于《图书情报工作》2007年第10期) 【摘要】 通过三个有针对性的检索对清华同方、万方数据、重庆维普三大全文数据库的检索技术实现的特点进行分析,从其目前提供的功能和招聘信息分析他们在竞争中所处的位置。指出全文数据库的三大核心竞争力是:历史数据的回溯、当前的数据质量、未来的增值服务。进而对未来的增值服务进行分析与预测,包括计量分析自动生成系统、句子级文献自动审稿系统、参考文献自动标注系统、观点型搜索,这些系统的实现将使得文献服务真正走向知识服务。 **************************************************************************** 论点一:检索词长了,检索结果未必少 标题精确检索图书馆比图书的结果多 网络信息计量学的检索结果也比网络信息计量的检索结果多 元数据的检索结果比数据的结果少 **************************************************************************** 论点二:核心竞争力 期刊全文数据库的竞争主要体现在三个方面: 历史数据的回溯; 当前的数据质量; 未来的增值服务,即数据的深加工程度。 ***************************************************************************** 论点三: 增值服务是核心竞争力的核心 增值服务除了提供更好的检索服务外(如中英文摘要语料对齐后的双语检索),还包括(但不仅限于)以下的应用: (1)提供文献计量自动分析的查询,如清华同方已推出的中国学术期刊文献评价统计分析系统。 (2)提供学术调研报告的自动生成,在文献计量自动分析的基础上,对国内外某领域进展情况进行评述。学术调研评价可以指导论文的选题和前期调研,特别有利于论文选题、项目评审等工作。 (3)可以从句子级提供文献自动审稿辅助功能,以及参考文献自动标注功能。 (4)提供更小粒度的检索,支持句子检索、真正的图片检索(首先是流程图、系统结构图、数据表等的检索,以后会支持图像检索,从颜色、纹理、形状等各个要素进行分析),大量使用信息抽取技术,提供列表式搜索。 (5)支持学术问答,支持观点型搜索、流派型搜索,能够提供学者谱系图,利用学位论文的致谢提供导师自动评价系统。 (6)提供知识点与知识点之间的链接,实现真正的知识服务。正如由过去买本整刊进行阅读到现在只看某篇文章,将来可能实现只看某篇文章的某一部分。 **************************************************************************** 从检索技术的实现看三大全文数据库的发展
个人分类: 信息检索|4507 次阅读|1 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-11 15:14

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部