`
ssxxjjii
  • 浏览: 931729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Solr,Lucene 优化有哪些相关经验

    博客分类:
  • solr
阅读更多

你的索引文件30G!这可是个非常大的数目了。
1. 从schema入手:
1> 你的数据是都需要store的么, 比如一些字段只需要提供结果搜索而不作为结果返回, 那么需要将store设置为false从而减少数据量。
2> 你的所有字段都需要highlight么, 如果不需要highlight则可以将term vector关掉。 
3> 确认你在schema没保存太多无用的信息(即不用来搜索也不用来返回)。
4> 你的分词算法是否合理, 如果你使用的是ngram的分词方法, 可以通过设置最大和最小分词长度来限制分词数据。
5> 你的业务上是否有明显的条目信息, 比如你索引的东西是一本书, 很多其他的信息在mysql或者其他地方有副本, 这样的话, 你大可以只store id信息, 其他字段都不store。
6> 你的业务能不能拆分, 比如之前书影音一起做搜索, 你可以考虑将他们分开。

2. 从segment角度
1> lucence使用segment来保存索引数据, 可以在Solr中通过mergeFactor来指定需要的临时文件数目, 如果mergeFactor过大, 则index的时间会缩短, 但磁盘占用和搜索时间会变的很长, 可以考虑适当调整mergeFactor, 或者在slave上做定期的optimize操作, optimize会将segment合并到一起, 当然, 这个过程比较耗资源, 所以可以考虑optimize的时候指定要merge到的数据。
2> 同样, 在master , slave环境中, 最好不要在master上做optimize, 因为在master上做optimize会导致slave每次复制整个index的数据, 这当然不是你想要的, 所以要采取措施不要让master和slave的配置一样, 这样很不划算。

3. 从shard上
更一般的情况是, 如果这些都不是你想要的, 可以考虑shard, Solr支持很灵活的Shard, 你可以在build index的时候给出规则让不同的数据发送到不同的服务器, 比如同过hash等。 这样你的大数据就可以分布在多个机器中, 提高处理速度, 当然, 如果你有性能较好的机器, 同样可以考虑在单一机器上做shard, 利用多核的处理性能。但是要谨慎Solr的一些特性在Shard环境中的支持情况。

4. JDK 
1> JDK 的版本, 建议使用最新的版本, 但是7貌似有bug, 看有没有7.1, 32 vs 64 对java没影响, 都是byte code ,不区分。
2> 可以通过制定Xmx Xms 参数调整heap 的大小, 如果你经常出现heap over flow的话。
3> 启用多线程gc, 这是你在处理大数据时避免溢出的好方法, 一般一个core一个gc线程。

5. 设置适当的cache, 根据cache命中率的不同来选择fastlru or lru。
这里网上有个叫做chenlb的人以前在1.4中做了一个patch, 可以使用memcache做solr的cache, 不过现在的3.5版本不兼容, 作者也没有对其更新, 如果你在分布式环境下, 可以考虑自己做一下这个, 弄好了可以分享给笔者。

6. 根据使用的不同, 优化方式也非常的多, 不再赘述。

分享到:
评论

相关推荐

    solr_solr_lucene_

    Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一...

    lucene-5.3.0+solr-5.3.0 jar包和文档示例

    Lucene是一套用于全文检索和搜寻的开源程式库,由Apache...提供了比Lucene更为丰富的查询语言, 同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面, 是一款非常优秀的全文搜索引擎。

    全文检索solr7.5.0

    Solr 是Apache下的一个顶级开源项目,采用Java开发,基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、...并且Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

    solr安装教程,安装包

    本人最近学习了传智播客的一个电商项目...同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎

    已编译版本solr-8.11.2.tgz

    并对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置,可扩展并对查询性能进行了优化,提供了一个完善的功能管理页面,是一款非常优秀的全文搜索引擎。 3,solr工作方式 文档通过http利用xml加...

    Solr 全文检索服务器.md

    Solr是Apache的顶级开源项目,使用java开发 ,基于Lucene的全文检索服务器。 Solr比Lucene提供了更多的查询语句,而且它可扩展、可配置,同时它对Lucene的性能进行了优化。

    solr 企业搜索引擎教程

    某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此 外,很多 Lucene 工具(如 Nutch、 Luke)也可以使用 Solr 创建的索引 Solr 的特性包括:  高级的全文搜索功能  专为高通量...

    Lucene4.6+Solr4.6实战开发垂直搜索引擎视频课程

    18.lucene4.6索引的相关操作 19.lucene4.6的各种Query(1) 20.lucene4.6的各种Query(2) 21.lucene4.6的各种Query(3) 22.solr4.6的快速搭建 23.solr4.6索引的相关操作 24.solr4.6搜索的相关参数功能(1) 25.solr4.6搜索...

    solr(全文检索系统)配置

    solr在window下的配置,solr(全文检索系统),solr是lucene的升华版,把数据库的数据导入到solr中,减少了数据库的压力,solr搜索代替并优化了like模糊查询,并且有中文分词器

    solr搜索培训

    Solr是一个拥有象WebService一样接口的独立运行的搜索服务器。它是基于lucene搜索引擎的服务,你将能够通过HTTP协议以XML格式将文档放入搜索服务器(这个过程叫做索引),你能够通过HTTP协议的GET来查询搜索服务器并且...

    solr-6.2.0

    Solr是一个高性能,采用Java5开发, ...同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

    solr下载安装教程

    同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。本文为solr下载安装教程

    solr-4.10.2.zip

    Solr是一个高性能,采用Java5开发, ...同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

    solr教程(配置+集成)

    Solr是一个独立的企业级应用服务器,...同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

    solr搜索引擎服务

    sorl搜索引擎安装与文件,Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

    支持solr5.x和lucene5.x的jcseg分词器,亲测可用!

    基于狮子的心的jcseg分词器,并优化部分功能,完美支持solr5.x和lucene5.x,本人是solr5.3,亲测可用。jcseg.properties使用原生的即可。本人还有pinyin拼音分词器资源,可以查看我的资源里。

    solr5.5.4全文搜索服务器

    Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是...

    apache-solr包

    solr是一个独立的企业级搜索应用...同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

    solr和中文分词器.zip

    Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一...

    Solr7.1.0 windows最新版百度云下载

    Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是...

Global site tag (gtag.js) - Google Analytics