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的性能和功能,比如如何配置NRT(Near Real Time)索引以实现快速的搜索响应,或者如何优化查询缓存以减少数据库查询。 在Jetty和Tomcat等应用服务器下运行Solr...
##### 12.7.1 多CPU内核下的调优配置 - 在多CPU内核环境下,合理配置MapReduce可以显著提升性能。具体措施包括: - 优化Map和Reduce任务的数量。 - 合理分配内存资源。 ##### 12.7.2 确定Job基线 - 确定Job的基线...
每次 HTTP 请求都使用独立连接,关闭了 Solr 查询缓存和文档插入缓存,以获取在最不利条件下的性能数据。 测试步骤包括使用 Maven 将代码打包并上传到服务器,然后执行并发访问测试。测试数据是一些描述性文本,...
SOLR 检索调优
Solr,全名Apache Solr,是Apache软件基金会的一个开源项目,主要用来处理全文检索、分布式搜索和实时分析。...理解Solr的缓存机制和配置选项,以及如何与外部缓存服务协作,是优化Solr性能的关键步骤。
MySQL的性能调优主要集中在参数配置方面,以下是一些重要的配置项: - **开启慢查询日志**:通过设置`slow_query_log`为1来开启慢查询日志记录功能,并指定慢查询日志文件路径。 - **设置缓冲池大小**:`innodb_...
solr同步调优,达到15分钟处理10万条数据更新,大约20万次solr操作(删除和插入),失败率1/10万
总之,部署 Solr 4.4 包括安装 JDK 和 Tomcat,配置 Solr 容器,设置 Solr 的 home 目录,安装中文分词器,以及对 Tomcat 进行调优。通过这些步骤,我们可以创建一个高效、稳定且支持中文搜索的 Solr 实例。维护过程...
在本文中,我们将详细探讨如何配置 Solr 5.4 开发环境,包括安装、配置、以及数据导入,同时也会提及 mmseg4j 分词器的使用。 首先,让我们了解 mmseg4j。这是一款适用于Java的中文分词库,它能够有效地对中文文本...
docker配置solr登录密码文件,内含配置密码的文件 、web.xml的文件 ,详情可以去看我的博客,博客地址:https://blog.csdn.net/huyande123/article/details/97110784
### Solr 在 Tomcat 下的搭建与配置数据库详解 #### 一、Solr 在 Tomcat 下的搭建步骤 **步骤1:准备Solr环境** ...在实际应用中,根据具体的需求可能还需要进一步调整Solr的配置参数以优化性能。
2. **缓存配置**:合理配置缓存策略可以显著提升性能,减少数据库的负担。 3. **分布式部署**:通过Sharding和Replication机制实现Solr集群的分布式部署,提高系统的可用性和扩展性。 4. **监控工具**:使用Solr提供...
在 Solr 8 中,为了确保系统的安全性和数据的隐私性,配置用户登录验证是非常重要的步骤。本文将详细介绍如何对手动配置 Solr 8 的用户登录验证。 首先,我们需要了解 Solr 的安全组件——Jetty 容器。Solr 默认...
- 调整内存分配、并发设置、索引缓存策略等,以优化Solr的性能。 - 分析和监控Solr的日志和JVM指标,以便找出性能瓶颈。 9. **安全考虑**: - 需要配置Solr的安全组件,如Solr Security Plugin,以保护Solr实例...
本文将详细介绍如何进行 Solr 的安装与配置。 首先,安装 Solr 需要先确保你的系统已经安装了 Java Development Kit (JDK) 1.6 或以上版本,因为 Solr 需要依赖 JDK 来运行。你可以从 Oracle 的官方网站下载并安装...
内容涵盖设置和配置Solr服务器、索引构建、查询优化、处理多语言文本、性能调优等方面。对于初学者和有一定经验的开发者来说,这本书提供了宝贵的实践经验和技巧。 2. **《Solr in Action》** 由Erik Hatcher、...
### Solr 3.5与Tomcat的部署配置及与Java项目的集成 #### 一、Solr 3.5与Tomcat的部署配置 **1. 下载与安装Solr** 首先,需要从官方或其他可信任来源下载Apache Solr 3.5.0。根据描述中的链接(虽然不可用),...