`
zhujyy
  • 浏览: 6348 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

lucene不足

阅读更多
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的搜索算法不适用于网格计算;

详情可以查看:Cedric Champeau 先生的博客:Why lucene isn’t that good 为什么Lucene并不是想象的那么棒
分享到:
评论

相关推荐

    Lucene.dll各版本集合

    Lucene.dll各版本集合,提供各种版本选择,避免出现方法无法执行的错误,有不足的欢迎联系补充Lucene.dll各版本集合,提供各种版本选择,避免出现方法无法执行的错误,有不足的欢迎联系补充

    Lucene 删除 合并索引

    Lucene 删除 合并索引,可以指定几个索引文件合并成一个索引文件。自己写的,有很多不足之处请多指教

    Lucene索引和查询

    该程序代码属于本人2015所写,虽然尚有不足,却实现了对多个文件夹下的数据进行Lucene建立索引和查询功能,并包含了所需的所有jar包,工程直接导入即可运行。

    lucene查询结果集分页代码

    在lucene搜索分页过程中,可以有两种方式 一种是将搜索结果集直接放到session中,但是假如结果集非常大,同时又存在大并发访问的时候,很可能造成服务器的内存不足,而使服务器宕机 还有一种是每次都重新进行搜索,这样...

    自己写的lucene分页高亮显示代码

    这个是自己写的lucene分页高亮程序虽然有些不足但是毕竟是自己研究半天总结出来的麻烦各位帮忙给点分哈哈祝大家新年快乐!

    Lucene5 工具类

    工具类对IndexWriter,IndexReader,IndexSearcher,Analyzer,QueryParser等Lucene这些常用操作对象的获取进行了封装,其中IndexWriter采用了单例模式,确保始终只有一个对象实例,因为Lucene限制了索引写操作是阻塞的...

    论文研究-一种基于Lucene的影片搜索引擎的研究和应用.pdf

    分析点播门户中现有的搜索引擎存在的不足,设计一种基于双字哈希算法支持中文的分词器,并利用该分词器和Lucene工具包,设计并实现了一个视频点播影片快速搜索引擎,它不仅支持中文检索,还具有搜索速度快、易于扩展...

    基于Lucene的MYSearch全文搜索引擎

    基于Lucene开源框架设计实现了MYSearch全文搜索引擎。给出了MYSearch实现的基 本原理和设计流程,以及实验结果,并针对Lucene在中文分词方面的不足展开了讨论,给出了改进 方法。

    Lucene的全文检索的研究与应用

    为了改善传统全文检索方法在检索效率上的不足,结合Lucene构建了一个全文检索系统模型。介绍了全文检索 的基本过程.该模型可用于中小型的全文检索系统的实现,同时可基于此模型开发定制个性化的搜索引擎。最后通过...

    基于Lucene的企业电子文档搜索系统的开发研究

    针对企业电子文档搜索的现状和不足,本文研究了全文检索技术和全文检索工具Lucene,并将其引入到系统开发中,在主流的B/S分层架构基础上,重点对文本提取模块、中文词划分模块、索引模块和搜索模块进行了设计与实现...

    mango:一个基于lucene的搜索引擎

    在搜索索引的建立是使用Lucene进行的.前端使用spring框架和dwr的异步刷新.由于是毕业设计的作品,较为粗糙,在这里放出来,仅供参考,有很多不足的地方,勿喷. ##mango_Heritrix 爬虫端 爬虫端,基于heritrix(具体相关...

    海量数据分析平台元数据管理的设计研究

    针对目前元数据管理系统中的不足,将高效、快捷、灵活作为目标,设计海量数据分析平台的元数据管理系统。系统使用XML Schema对元数据结构进行描述,并且以此结构自动在后台XML数据库系统中创建库,实现用户界面的...

    IKAnalyzer3.2.8

    IKAnalyzer是中国人自己开发的功能强大分词器,弥补了lucene自带的分词器的不足

    论文研究-结合相关规则和本体加权图的查询扩展.pdf

    针对现有信息检索系统查询性能的不足,提出了一种结合相关规则和WordNet本体信息的查询扩展方法。该方法借助相关规则挖掘和WordNet本体信息构建加权词语关系图,并根据加权图的结构和权重信息计算扩展词的重要性。...

    论文研究-数据网格中信息服务技术的研究与实现.pdf

    针对传统数据网格信息服务的不足之处,在分析Web搜索引擎技术和基于关键词的数据库索引技术基础之上,结合这两种信息获取技术,设计了数据网格中结构化数据资源发现技术的体系结构。在科学数据网格信息服务系统中,...

    一种新的基于内容的图像检索方法

    针对传统图像检索的不足,提出一种新的基于内容的图像检索方法。该方法首先构造色 彩距离公式,根据色彩距离公式自动判别图片的主色调,然后利用Lucene的索引模块为图片创建索 引,利用搜索模块实现图像检索。...

    主题搜索引擎的研究

    介绍了将开源的全文检索工具包Lucene嵌入到自己的搜索引擎中来满足开发主题搜索引擎的...并基于Lucene中文分词的不足设计了一个比较完善的中文分词器,然后将其引入具体应用中,并且与传统搜索引擎在性能上进行了比较。

    ebsite for net4.0网站建设系统 v3.0 正式版.zip

    10.提供开方式数据搜索模式接入,网站的搜索可订制,官方提供了sql搜索,及一个功能强大的lucene搜索插件内带带分词,如果您在搜索方面要求亿级大数据分词高效搜索,可以选择启用lucent或自己开发自己的搜索插件(要...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

Global site tag (gtag.js) - Google Analytics