`

Solr4.0性能调优之缓存配置

 
阅读更多
  Solr配置文件[solrconfig.xml]有三种缓存分别是 filterCache,queryResultCache,documentCache但Solr是在什么时候,什么情况下会用到这些缓存呢,通过看Solr的源码,下面对Solr三种缓存做说明:
    [1].  Filter cache(过滤器缓存),用于保存过滤器(fq 参数)和层面搜索的结果
    [2].  Document cache(文档缓存),用于保存 lucene 文档存储的字段
    [3].  Query result(查询缓存),用于保存查询的结果

  通过这3种缓存,可以对solr的搜索实例进行调优。调整这些缓存,需要根据索引库中文档的数量,每次查询结果的条数等。在调整参数前,需要事先得到 solr 示例中的以下信息:
    [1].  索引中文档的数量
    [2].  每秒钟搜索的次数
    [3].  过滤器的数量
    [4].  一次查询返回最大的文档数量
    [5].  不同查询和不同排序的个数

  Solr中主要是LRUCache,主要使用的是LRU是Least Recently Used最近最少使用算法。LRU算法的描述如下:

LRU算法

    内存管理的一种算法,对于在内存中但最近又不用的数据块(内存块)叫做LRU,Oracle会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。

  什么是LRU算法? LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。

  关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式—— 在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需页面,其余页面放入外存的管理方式。

  然而,有利就有弊,虚拟页式存储管理减少了进程所需的内存空间,却也带来了运行时间变长这一缺点:进程运行过程中,不可避免地要把在外存中存放的一些信息和内存中已有的进行交换,由于外存的低速,这一步骤所花费的时间不可忽略。因而,采取尽量好的算法以减少读取外存的次数,也是相当有意义的事情。

  我们可以通过solr管理界面查看缓存的状态,也可以通过日志进行查看。下图是我进行的参数设置后的状态:


参数说明:
    [1].  lookups: 查询次数
    [2].  hits: 命中次数
    [3].  hitratio:命中率
    [4].  inserts: 插入数量
    [5].  evictions:剔除数量



缓存配置solrconfig.xml
filterCache 缓存

  filterCache:当搜索请求参数中带有参数"ids"时,Solr会去filterCache里查,filterCache里Key是query,值是DocSet,,也就是无序的Document id,如果有多个ids里包含多个id,则用分隔符“,”分开。如果filterCache中没有对应的值,则通过reader都查找对应的DocSet,并添加到filterCache缓存中。
<filterCache class="solr.FastLRUCache"
      size="10240"
      initialSize="8092"
      autowarmCount="4096"/>

queryResultCache 缓存
  如果搜索请求参数没有ids参数时,则会不去filterCache缓存里找,而且没有Filter时,才是去queryResultCache里查找,queryResultCache里保存的是有序的DocList。在查到docList后,回去取docSet,即会在filterCache中查,没有的话会加到filterCache中,如果queryResultCache缓存中没有值,也先去取docSet,即通过filterCache,没有对应的值的话,则重新构建,添加到缓存中,则通过一般的查找方式找到。然后添加到queryResultCache缓存中。
<queryResultCache class="solr.LRUCache"
      size="1024"
      initialSize="1024"
      autowarmCount="512"/>

documentCache 缓存
  documentCache 是在通过doc(int i) 方法取document时,用到的。 documentCache 不存在的话,这通过reader去取,取到document后,添加到documentCache 缓存。
<documentCache class="solr.LRUCache"
      size="10240"
      initialSize="8092"
      autowarmCount="4096"/>

fieldValueCache 缓存
  fieldValueCache 缓存是在solr组件FacetComponent组件里发货作用的。条件是如果要统计的Field是multiValued,也就是有多个值的情况,solr 会根据field创建一个field反正类UnInvertedField,通过注解大概了解是节约内存和加速facet统计。
<fieldValueCache class="solr.FastLRUCache"
      size="512"
      autowarmCount="128"
      showItems="32" />

httpCache 缓存
  Solr httpCache 主要是用来判断当前的搜索请求request的请求头header的If-Modified-Since和If-None-Match的两个值。
  • 大小: 71.5 KB
分享到:
评论

相关推荐

    Solr 4.0 源代码实例

    附件包含100个以上示例,包括solr.xml、solrconfig.xml等在Jetty、Tomcat等应用服务器下的详细配置。

    Solr 4.0 cook book

    基于最新的Solr 4.0搜索引擎教程,包含大量示例讲解,是学习Solr4不可多得的教程。

    SOLR检索调优

    SOLR 检索调优

    solr7.0性能测试报告

    该资源为本人亲自整理的报告,多线程代码未给出,不是太难我相信你能搞定。

    solr同步调优

    solr同步调优,达到15分钟处理10万条数据更新,大约20万次solr操作(删除和插入),失败率1/10万

    solr 安装与配置

    solr 安装与配置

    linux+tomcat+mysql+solr调优

    linux+tomcat+mysql+solr调优,整理的比较粗糙,给大家分享参考下

    docker配置solr登录密码文件

    docker配置solr登录密码文件,内含配置密码的文件 、web.xml的文件 ,详情可以去看我的博客,博客地址:https://blog.csdn.net/huyande123/article/details/97110784

    solr深入浅出

    介绍了Solr的特性,Solr服务原理,源码结构,Solr的安装与配置,Solr的应用,SolrJ的用法,solr性能调优等等

    solr(全文检索系统)配置

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

    apache-solr-4.0.0-ALPHA-src.gz官方包

    apache官方的solr4.0的源代码包,可以通过分析源代码提高理解,或者通过编译源码进行二次开发

    solr5.4开发环境完整配置

    solr5.4的mmseg4j的相关jar包,还有solr5.4的配置,按我的文档可以配置好solr 的java开发和导库存环境.

    solr4.4部署、维护、调优

    solr4.4部署、维护、调优,包括安装jkd,tomcat部署,solr4.4部署

    solr中文分词器文件及配置.zip

    solr搜索框架的中文分词器文件及配置详解供大家下载,亲测可用.解压出来的jar包放到apache-tomcat-9.0.20\webapps\solr\WEB-INF\lib下(Tomcat项目里solr项目)其他三个文件放到apache-tomcat-9.0.20\webapps\solr\...

    solr4.4.0入门配置步骤

    solr4.4.0入门配置步骤 solr4.4手把手入门配置 solr4.4配置 solr4.4.0入门配置步骤 solr4.4手把手入门配置 solr4.4配置

    Solr_5.x版本配置完成

    基于solr5.x版本,在此之上,已经配置了相应的jar包,IKAnalyzer中文分词器,和一个简单的solrHome.下载之后可以直接放到tomcat的webapps路径下启动tomcat就能运行看到效果了。

    Solr参考书籍

    包括两本官方推荐的书籍,solr in action 2014和apache_solr4_cookbook。基于solr 4.0以上的,正好做个对solr入门。英文经典版本。

    Solr安装与配置

    Solr安装与配置 完整的solr配置步骤,带截图,说明很清晰。

    SOLR的应用教程

    6 solr性能调优 55 6.1 Schema Design Considerations 55 6.1.1 indexed fields 55 6.1.2 stored fields 55 6.2 Configuration Considerations 55 6.2.1 mergeFactor 55 6.2.2 mergeFactor Tradeoffs 56 6.3 Cache ...

    solr3.5与tomcat的部署配置以及与java项目的集成

    solr3.5与tomcat的部署配置以及与java项目的集成 大部分步骤都有截图说明 一目了然

Global site tag (gtag.js) - Google Analytics