Lucene介绍与使用

Lucene介绍与使用

原文链接:https://blog.csdn.net/weixin_42633131/article/details/82873731

不选择使用Lucene的6大原因?

原文链接:https://blog.csdn.net/xiangxizhishi/article/details/74581950

Lucene是开放源代码的全文搜索引擎工具包,凭借着其强劲的搜索功能和简单易用的实现,在国内已经很普及,甚至一度出现了言搜索必称Lucene的盛景。上个月Lucene的开发团队发布了 Java Lucene 2.3.1 ,相信很多朋友们都用上了。在国内对Lucene的介绍可以分为3块儿:
第一类是:以车东Lucene:基于Java的全文检索引擎简介 为代表的基础入门介绍;
第二类是Lucene倒排索引原理和Lucene软件包、实现类的介绍;
第三类是以中文分词为中心的介绍;

任何一个软件,包括所有伟大的软件都有这样或者那样的“缺点”和各自适用的领域,Lucene也不例外。在国内对Lucene这个软件包的批评,似乎没有看到过。可能大家都忙于做项目,纵然Lucene有再大的缺陷,凭借着Lucene良好的口碑,也不会说上一句不是。

今天在阅读LingWay (一个做垂直的语义搜索引擎)的CTO Cedric Champeau 先生的博客是发现有一篇题为:Why lucene isn‘t that good 为什么Lucene并不是想象的那么棒 的文章:Champeau
开门见山指出了Lucene的6大不足之处,鉴于 Lingway 公司使用Lucene已有好几年的历史,我相信Cedric Champeau的对Lucene的评论还是值得一读。

不选择使用Lucene的6大原因:

6、Lucene 的内建不支持群集。
       
Lucene是作为嵌入式的工具包的形式出现的,在核心代码上没有提供对群集的支持。实现对Lucene的群集有三种方式:1、继承实现一个
Directory;2、使用Solr 3、使用 Nutch+Hadoop;使用Solr你不得不用他的Index Server
,而使用Nutch你又不得不集成抓取的模块;

5、区间范围搜索速度非常缓慢;
       Lucene的区间范围搜索,不是一开始就提供的是后来才加上的。对于在单个文档中term出现比较多的情况,搜索速度会变得很慢。因此作者称Lucene是一个高效的全文搜索引擎,其高效仅限于提供基本布尔查询 boolean queries;
4、排序算法的实现不是可插拔的,因为贯穿Lucene的排序算法的tf/idf 的实现,尽管term是可以设置boost或者扩展Lucene的Query类,但是对于复杂的排序算法定制还是有很大的局限性;
3、Lucene的结构设计不好;
    Lucene的OO设计的非常糟,尽管有包package和类class,但是Lucene的设计基本上没有设计模式的身影。这是不是c或者c++程序员写java程序的通病?
    A、Lucene中没有使用接口Interface,比如Query 类( BooleanQuery, SpanQuery,
TermQuery...) 大都是从超类中继承下来的;
    B、Lucene的迭代实现不自然: 没有hasNext() 方法, next() 返回一个布尔值 boolean然后刷新对象的上下文;
2、封闭设计的API使得扩展Lucene变得很困难;
   参考第3点;
1、Lucene的搜索算法不适用于网格计算;

原文地址:https://www.cnblogs.com/zt007/p/12098521.html

时间: 2024-10-17 18:15:32

Lucene介绍与使用的相关文章

lucene介绍

lLucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开发源代码的全文检索引擎工具包.它是一个很强大的搜索库,能轻易的将搜索功能加入到任何程序中.能对文档搜索,文档内信息搜索或相关文档进行搜索等操作,源码由java实现,是一个成熟,卡原的检索工具. lucene的整体架构如下: 从图中,我们可以看出,主要分为两个大步骤,一个是建立索引的过程,一个是通过关键字查找索引搜索的过程. 索引过程,可以从DB,web,文件系统等来源抓取原始数据,对该数据通过以某种方式,对某些内

Lucene介绍与入门使用

Lucene简介 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供.Luc

全文检索技术---Lucene

1       Lucene介绍 1.1   什么是Lucene Lucene是apache下的一个开源的全文检索引擎工具包.它为软件开发人员提供一个简单易用的工具包(类库),以方便的在目标系统中实现全文检索的功能. 1.2   全文检索的应用场景 1.2.1  搜索引擎 ©注意: Lucene和搜索引擎是不同的,Lucene是一套用java或其它语言写的全文检索的工具包.它为应用程序提供了很多个api接口去调用,可以简单理解为是一套实现全文检索的类库.搜索引擎是一个全文检索系统,它是一个单独运

Lucene基础(一)--入门

Lucene介绍 lucene的介绍,这里引用百度百科的介绍Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.Lucene是一套用于全文检索和搜寻的开源程式库,

Lucene实现索引和查询

0引言 随着万维网的发展和大数据时代的到来,每天都有大量的数字化信息在生产.存储.传递和转化,如何从大量的信息中以一定的方式找到满足自己需求的信息,使之有序化并加以利用成为一大难题.全文检索技术是现如今最普遍的信息查询应用,生活中利用搜索引擎,在博客论坛中查找信息,这些搜索的核心原理就是本文要实现的全文检索技术.随着文档信息数字化的实现,将信息有效存储并及时准确的提取是每一个公司.企业和单位要做好的基础.针对英文的全文检索已经有很多成熟的理论和方法,开放源代码的全文检索引擎Lucene 是Apa

Lucene的基本使用

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica } 一.全文检索与Lucene介绍 1.全文检索 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的.这部分从非结构化数据中提取出然后重新组织的信息,我们称之索引. 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search). 2.Lucene技术 Lucene是ap

全文检索引擎:solr lucene

solr在lucene外边做了一层厚厚的封装,主要是为了简化二次开发,提供了一些成熟的解决方案. Lucene是全文检索是对索引中Document的各field进行匹配,可返回document,得到查询的结果集. Lucene更像是一个SDK. 有完整的API族以及对应的实现.你可以利用这些在自己的应用里实现高级查询(基于倒排索引技术的),Lucene对单机或者桌面应用很实用很方便.但是Lucene,需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦.于是,就有了Solr. 而So

ES && Lecence介绍[转]

https://www.jianshu.com/p/40ec55c6e614 备注 1. Lucene介绍 为了更深入地理解ElasticSearch的工作原理,特别是索引和查询这两个过程,理解Lucene的工作原理至关重要.本质上,ElasticSearch是用Lucene来实现索引的查询功能的. 1.1 定义 Lucene是一个成熟的.高性能的.可扩展的.轻量级的,而且功能强大的搜索引擎包.Lucene的核心jar包只有一个文件,而且不依赖任何第三方jar包.更重要的是,它提供的索引数据和检

ElasticSearch学习总结(二):ES介绍与架构说明

本文主要从概念以及架构层面对Elasticsearch做一个简单的介绍,在介绍ES之前,会先对ES的"发动机"Lucene做一个简单的介绍 1. Lucene介绍 为了更深入地理解ElasticSearch的工作原理,特别是索引和查询这两个过程,理解Lucene的工作原理至关重要.本质上,ElasticSearch是用Lucene来实现索引的查询功能的. 1.1 定义 Lucene是一个成熟的.高性能的.可扩展的.轻量级的,而且功能强大的搜索引擎包.Lucene的核心jar包只有一个文