lucene/solr的缺点

lucene/solr的缺点 solrlucenehadoop&">nbsp; 1) http 请求做了cache,8630.html">有时候会出现新数据不可见,cache滞后的问题。—cache优化下也不是问题

2) admin 后台页面,支持中文、
复杂查询语法上,欠友好。—自己稍加扩展也不是问题

3) swap core的时候,单结点多core,并且core对应的索引比较大的时候,切换过程出现内存2倍化现象,甚至超时现象。—如果分前后排切换这些都不是问题了。

4) index build和index search往往在一起,导致全量过程,
磁盘峰值3倍化。一份原来的、一份新建的、一份优化的时候。—-当然,build和search分离是可以解决这个问题的,也是常规做法。

5) build 和search在一起,也使得build和search的一些参数设置不能区别对待,尤其是build和search合体的时候,预留磁盘、内存等加速build,反而影响search。—-当然可以 build search分离搞定

6) 分布式查询,如果有merge,性能有些问题。—-当然可以将数据分区,避免merge 7) 得分因子是可以调整的,
但是得分因子的增加、得分公式的扩展,无法直接从solr配置插入。—-但是,可以扩展lucene的代码或者参数spanquery,重新一个query,插入solr,这样工作量稍大.另外,社区提供了bm25、pagerank等排序batch,对lucene有
所以了解后,就可以直接引用了。

8) solr分布式索引全量、增量控制粒度,尚不够友好。指定结点、任何时刻全量,指定条件下增量都不够顺利。尽管solr提供了自定义扩展实现方法。这些也不是很大问题。

9) solr build和search和在一起,数据和业务
其实绑定在一起了,没有彻底隔离。使得在上100个core的时候,数据源管理维护变得非常消耗资源。直接引入hadoop或者其他nosql存储时目前最流行的用来隔离数据和业务耦合性了。开源的分布式lucene方案非常多.

10) ABTest 共享相同索引目录,而不同排序或者不同分词 solr不能直接支持 11) ABTest 独立索引目录,不同排序或者不同分词,solr也不能直接支持

12) 一个core对应多个子目录,查询既可以查指定子目录也可以全部子目录查,以及更新某个子目录索引或者全部子目录索引,solr也不能直接支持,而这些在大数据量的时候是需要支持这些功能的。

13)solr或者lucene目前不支持快速的“局部”更新。这里是指对document的某个字段的快速更新,目前是需要传入完整的document,
然后add进去。如果document的不变字段来源多个源的话,IO、计算资源有些浪费,如果更新量不大还好。—当然可以对更新的单独开辟内存来处理,而更大的那个基本索引不去动他。

14)solr不支持第三方条件过滤。
例如从倒排中过滤处理一批doc,而这些doc需要与外部源进行doc域值过滤。问题主要是第三方信息动态性太强,不利于直接写索引中去。

15)solr 在支持中文分词的时候,有很多第三方包可以引入,但需要扩展queryparse有时候,总体看有优势也有劣势。优势是引入方便,劣势是词库、算法体系和lucene的不完全兼容,扩展、完善不是
那么容易。

16)在排序上,对与去重或者对应基于时间动态性上,还没有现成的支持。去重是指排序的前几条结果,可能某个域值完全相同了,或者某几个域值完全相同,导致看起来,靠前的结果带有一些关联字段的“聚集性”,对有些应用来说,并不是
最好的。

在时间因素上动态性,也没有直接支持,也只能靠间接的按时间排序来实现。 这个问题其实不是lucene、solr要关注的吧,应该是应用的特殊性导致的吧。

17) solr、lucene输出的日志,尚没有一个通用的分析工具,包括高频词、查询query聚合性等。只能自行去解析。

18) 在支持推荐上,还不能将log信息直接关联起来,推荐也基本上靠离线计算好,导入倒排索引,查询再关联起来。

19) 当内存30个G 以上,单节点索引数据量比较大的时候,jvm环境下FGC和内存管理显得非常辣手。调优需要仔细的测试

20) lucene很少面向接口,solr很多面向接口,插件化、可扩展使得solr很灵活

21)对于垂直型的平台化搜索,支持N个不同应用、不同schema、不同数据源、不同更新频率、不同查询逻辑、不同访问请求量、不同性能指标要求、不同机器配置、垂直扩容、水平扩容,solr显得不够胜任,尽管solrcloud中已经有非常多的宝贵设计经验。

22)流控和数控,solr也不能直接支持。访问请求不支持定时和定量控制,索引垂直扩容(增加索引副本,支撑更多访问请求)、索引水平扩容(增加索引分区数,支撑更多数据量,平衡性能和空间压力)

23) solr自容错还不够强大。例如schema变更导致的不合理检测以及配置错误的回滚、solrconfig的一些参数不能动态
获取,必须事先配置好。oom之后不能自动reload!请求量大的时候也不能抛弃一些请求。

24) 基于位操作的高级应用还不够灵活,例如boolean 存储和facet、byte[]存储和facet、group等,支撑仍然不够友好。

25) query parse基本没有预测功能,不能调整query顺序和自动收缩条件。当然一般情况下是不需要这么复杂的优化。

26)一些比较变态的查询需求不是特别高效。例如查询某个域不空。当然可以将空域采取默认值代替,查询默认值再过滤。

27)对于唯一值域,没有优化,导致唯一值域的term数据膨胀。最常见的就是更新时间、上传时间等,占了非常大的term比例。

28)multivalue 字段,实质是建立多个相同域名的字段,并不是一个域。对于域值很多内容的话,只好和在一起保存。同时,long int short float double 等数组不能直接作为一个类型保存,全部得转为字符存储。空间和效率有些低。

29)有些词出现的频率特别高,导致该词的倒排连非常长,solr、lucene也没有干涉。任务交给应用自己斟酌,实际上solr单节点对于命中超过100w的,并多字段排序的时候,cache失效时性能非常糟糕的。

30)solr\lucene 对千万级别应用非常擅长,亿级别应用需要慎重对待。

时间: 2024-10-03 09:44:21

lucene/solr的缺点的相关文章

Lucene/Solr 4.0-ALPHA – What’s In A Name?

Lucene & Solr 4.0-ALPHA were released on July 3, 2012. This is a huge milestone for the project, and the culmination of an idea that was spawned 2 years ago with the creation of the 4x branch. I've included the highlights from the release announcemen

Lucene/Solr Optimize相关总结

Optimize就是优化的意思.说到Optimize,其实问题回归到两个本质问题:updata-in-place/update-out-of-place.restart. 1 When Optimize 索引update.deleted.add.update.deleted.add反反复复,导致索引"千仓百孔"."指针琳琳散散"."无用数据或者辅助数据增多",最后影响相同的查询逻辑,越到后面检索性能逐渐糟糕. 2 How Optimize 整体o

Apache Lucene/Solr 3.3发布 基于Lucene的搜索服务器

Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇分两部分的文章中,Lucene Java 的提交人 Grant Ingersoll 将介绍 Solr 并向您展示如何轻松地将其表现优异的全文本搜索功能加入到 Web 应用程序中. 一旦用户需要某种信息,就可以立即搜索到这些信息,这种要求再也不是可有可无的了.随着 Google 和类似的复杂搜索引擎的出现,用户希望得到高质量的搜索结果,帮助他们快速.轻易地找到所需的信息.经理对您的h

solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)

Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在查询中可以应用的高亮显示.拼写检查.搜索建议.分组统计.拼音检索等功能的使用方法. 版本 作者/修改人 日期 V1.0 gzk 2013-06-04 1. Solr 是什么? Solr它是一种开放源码的.基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中.Solr 提供了层面

技术分享:如何用Solr搭建大数据查询平台

0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名"兴才",这个看起来还不错的名字,其实是我们家乡骂人土话,意思是脑残人士-. -_-|||额好吧,反正是假的,不要在意这些细节. 这只是名,至于姓氏么,每个帐号的注册资料那里,照着百家姓上赵钱孙李周吴郑王的依次往下排,什么张兴才,李兴才,王兴才--于是也不知道我这样"兴才"了

谈谈Hadoop和分布式Lucene

Lucene是大家用的最多的开源搜索引擎.本文不探讨Lucene如何实时更新(http://issues.apache.org/jira/browse/LUCENE-1313),和如何修改Lucene评分机制,添加如PageRank评分因子,本文只讨论分布式的Lucene. 说到Lucene一般都会提到Nutch,Hadoop最早是Doung Cutting为了Nutch的crawler和indexer所开发的做为nutch的两个package.Hadoop在Nutch中的作用就是抓取页面和建立

Lucene 3.6.2入门(13) Solr3.6.2简介以及整合Tomcat

/** * [Lucene3.6.2入门系列]第13节_Solr3.6.2简介以及整合Tomcat * @see Solr是一个高性能的,采用Java5开发的,基于HTTP和Lucene实现的开源企业级全文搜索引擎 * @see 可以粗暴的理解为:Lucene专注于搜索底层实现及算法优化,Solr专注于高层次的为企业服务的易于使 用和管理的搜索服务器 * @see 再粗暴一点理解为:Lucene和Solr的关系类似于,Ajax和jQuery,Servlet和Struts2,JAX-WS和CXF,

Solr平台化搜索实战必知场景

[提醒] 这个page是个人汇总了maillist.自己在搜索平台化.通用化过程中遇到的种种需求,为了避开必要的"敬业竞争禁止等",特地从外网搜罗并汇总代表性的需求.构成基于solr搜索"策略"参考.搜索应用查询的方案参考,但是,性能问题特别是高级用法,在大数据量时,务必压测,做到心里有底. 这里面给出的方法绝大部分基于solr接口.配置.不针对深入定制的详细说明.针对深入定制的经验,这里找不到答案,有兴趣私下交流.  整个汇总抛砖引入,各个点没有做系统.全面的论证

solr由简单入门

第一章 一.简介          Solr是一个开源的,企业级搜索服务器.她已经是一个成熟的产品,用于强化网络站点的搜索功能,包括内部局域网. 她是用Java语言编写.使用HTTP和XML进行数据传输,Java的掌握对于学习Solr不是必须的.除了能返回搜索 结果外,还有包括高亮搜索关键字,方位导航(已广泛用于电子商务网站),查询关键字拼写校验,自动查询建议 和 "类似"查询 帮助更好定位搜索.     二.Lucene,solr的基础引擎          在相信介绍Solr前,我