`
wbj0110
  • 浏览: 1587859 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Solr 缓存配置

    博客分类:
  • Solr
阅读更多

Solr缓存与Solr的索引搜索器(SolrIndexSearcher)息息相关的,而众所周知,索引的结构很难做出大的变动,效率也是板上钉钉的事情。因此提高索引搜索器的使用效率,使之在任何缓存都能够高效并可重用是目前需要我们去做的工作。在Solr中所提到的缓存和我们平常遇到的缓存不同。在Solr中的缓存对象将不会在一段时间之后过期,也就是说,只要索引搜索器是存在的,那么高速缓存对象也一定存在。

满足索引搜索器服务的要求,并在一个新的搜索器被打开,新的会自动后台预热,原来的那个搜索器仍然满足对外服务的要求。新的搜索器就绪时,它将作为当前搜索被注册,并将处理以后新的搜索请求。而旧的搜索器在把它当前所有搜索请求完成后,将会关闭。当前新的搜索器被做为自动预热的根源。在打开一个新的搜索者时其高速缓存可能会预先设定或者自动预热,并使用旧的搜索器的数据缓存。目前有两种缓存实现 — — solr.search.LRUCache (LRU = 最近最少使用内存中),和 solr.search.FastLRUCache。

 

常见的缓存配置参数

class

您想要使用、 可实现的 SolrCache 实现的 

solr.search.LRUCache 

solr.search.FastLRUCache 

size

最大高速缓存中的条目数。initialSize

 

autowarmCount

从旧的缓存中需要预热的缓存对象数量。在打开一个新的搜索器时其高速缓存可能会从缓存中旧的搜索器所属的缓存对象预设或者"autowarmed"。autowarmCount 是将新的搜索在重新生成的缓存条目数。现在可以将 autowarmCount 指定为百分比 (即: 90%) 可计算相对现有缓存中的项的数目。

 

Types of Caches and Example Configuration

FilterCache

 

过滤器缓存(filterCache)存储无序的文档编号列表。此缓存有三个不同的目的:

1、 过滤器缓存存储任何solr明确要求执行的过滤查询结果(fq参数)。每个过滤器和缓存分别执行。闲暇时用它来限制查询所返回结果的数量.)

2、 过滤器缓存是用于在某些情况下,小面。 (特别是,当TermEnum方法是使用一个filterCache项为每个测试项补充说。)

3、 过滤器缓存可能被用来进行排序,如果<useFilterForSortedQuery/>配置选项设置为true在solfconfig.xml。

如果使用fieldCache的方法,建议设置filterCache大小比例。

 

QueryResultCache

 

此缓存中存储的文档 id,是按某些条件查询结果排序的有序的集。

在 queryResultCache 的内存使用情况明显小于在 filterCache ,因为它只存储文档由查询返回给用户的 id。

DocumentCache

存储在documentCache是从磁盘中提取的Lucene的文档对象。越是字段存储在磁盘上,这种缓存的内存使用量将越高。

 

User/Generic Caches

用户/通用缓存,通过SolrIndexSearcher.getCache(),cacheLookup(),目的是使用户/应用程序级数据的简单缓存。参数应指定为实现solr.search.CacheRegenerator。

 

Lucene FieldCache

Lucene 具有一个低级别"字段 缓存",用于进行排序 (和在某些情况下 faceting)

 

 

================================================

 

缓存在 Solr 中充当了一个非常重要的角色,Solr 中主要有这三种缓存:
  • Filter cache(过滤器缓存),用于保存过滤器(fq 参数)和层面搜索的结果
  • Document cache(文档缓存),用于保存 lucene 文档存储的字段
  • Query result(查询缓存),用于保存查询的结果

还有第四种缓存,lucene 内部的缓存,不过该缓存外部无法控制到。

通过这 3 种缓存,可以对 solr 的搜索实例进行调优。调整这些缓存,需要根据索引库中文档的数量,每次查询结果的条数等。
在调整参数前,需要事先得到 solr 示例中的以下信息:

  • 索引中文档的数量
  • 每秒钟搜索的次数
  • 过滤器的数量
  • 一次查询返回最大的文档数量
  • 不同查询和不同排序的个数

这些数量可以在 solr admin 页面的日志模块找到。假设以上的值分别为:

  • 索引中文档的数量:1000000
  • 每秒钟搜索的次数:100
  • 过滤器的数量:200
  • 一次查询返回最大的文档数量:100
  • 不同查询和不同排序的个数:500

然后可以开始修改 solrconfig.xml 中缓存的配置了,第一个是过滤器缓存:

<filterCache class="solr.FastLRUCache" size="200" initialSize="200"  autowarmCount="100"/>

第二个是查询结果缓存:


<queryResultCache class="solr.FastLRUCache" size="500" initialSize="500" autowarmCount="250"/> 

第三个是文档缓存:


<documentCache class="solr.FastLRUCache" size="11000" initialSize="11000" /> 

这几个配置是基于以上的几个假设的值进行调优的。
分享到:
评论

相关推荐

    solr更换memcached缓存的方法

    找到`&lt;cache&gt;`元素,创建新的缓存配置,指定为`solr.MemcachedCacheFactory`。例如: ```xml &lt;cache name="queryResultCache" class="solr.search.LRUCache" shared="true" size="512" initialSize="512" ...

    solr搜索服务器安装配置

    2. **缓存配置**:合理配置缓存策略可以显著提升性能,减少数据库的负担。 3. **分布式部署**:通过Sharding和Replication机制实现Solr集群的分布式部署,提高系统的可用性和扩展性。 4. **监控工具**:使用Solr提供...

    solr所需要配置的资源.zip

    1. `solrconfig.xml`:这是Solr的主要配置文件,包含索引、查询、更新处理链、缓存设置等内容。例如,可以通过设置`updateHandler`来定义数据如何被索引,通过`requestHandler`定义查询请求的处理方式。 2. `schema...

    Solr(Cloudera)使用手册

    #### 七、使用Solr缓存 Solr支持多种缓存机制,包括QueryResultCache、FieldValueCache等,这些缓存可以帮助提高搜索性能。 1. **Cache生命周期**:了解各种缓存的生命周期管理机制,比如何时清理缓存、如何设置...

    solr3.5配置

    然后解压缩并配置 Tomcat,修改 `server.xml` 文件以设置端口和字符编码(如添加 `URIEncoding="UTF-8"` 防止中文乱码)。将 Solr 的 `war` 文件重命名后部署到 Tomcat 的 `webapps` 目录下,并创建 `solr.xml` 文件...

    solr所需配置文件

    例如,它包含了索引写入策略(如实时添加文档)、缓存设置(如查询结果缓存和文档过滤器缓存)、请求处理器的配置以及搜索组件的定义等。 2. **schema.xml**: 此文件定义了Solr的字段类型(FieldTypes)和字段...

    solr cache部分 中文解释

    Solr 还允许自定义缓存配置,包括设置缓存大小、替换策略(如LRU、LFU或FIFO)以及缓存的内存分配。在 Solr 的配置文件(如solrconfig.xml)中,可以通过指定缓存的名称、容量、替换策略等参数来调整这些设置。 在...

    solr中cache综述

    每种缓存都有其特定的配置选项,包括缓存大小、过期时间等,可以通过Solr的配置文件进行调整。 #### 四、solr基于Cache的优化 1. **查询结果缓存应用**:通过启用`queryResultCache`,Solr可以在内存中保存查询...

    solr文档solr文档

    2. **安装与部署**:Solr的下载、解压、启动和停止过程,以及如何配置Solr服务器,包括设置Solr home、创建和配置核心(core)。 3. **数据导入导出(DIH,DataImportHandler)**:学习如何使用Solr的数据导入工具...

    solr(solr-9.0.0-src.tgz)源码

    - **缓存机制**:Solr有多种缓存,如查询结果缓存、文档值缓存等,可以显著提高性能。 - **分布式搜索**:通过ShardRequest和ShardResponse处理跨节点通信,优化大规模数据的搜索效率。 通过深入研究`solr-9.0.0-...

    Solr生产环境总结

    4. 调整索引和查询性能,例如通过设置缓存、分析器和过滤器等。 5. 实施安全性配置,如使用 SolrCloud 进行分布式部署,以保证数据安全和高可用性。 6. 监控和日志分析,确保系统稳定运行,及时发现和解决问题。 在...

    solr-4.10.3.rar

    3. **配置与部署**:Solr的配置文件位于`conf`目录下,包括schema.xml(定义字段和字段类型)、solrconfig.xml(配置索引和查询参数)等。用户可以根据需求自定义这些配置。部署Solr通常涉及解压下载的`solr-4.10.3....

    solr-4.4.0.tgz

    - 根据系统负载和性能需求,调整 Solr 的配置参数,例如增加索引段大小、调整缓存设置等。 以上就是 Solr 4.4.0 版本的主要知识点,以及如何在 Linux 环境下进行安装和部署到 Tomcat。通过熟练掌握这些步骤,你将...

    solr深入浅出

    这涉及到Schema设计(如哪些字段应被索引,哪些应被存储),配置优化(mergeFactor、缓存设置等),内存管理(防止内存溢出,合理分配JVM内存),以及更新频率和查询响应压缩等方面的权衡。 总的来说,掌握Solr的...

    Solr 4.0 源代码实例

    3. **搜索性能优化**:可能包含关于索引结构优化、查询缓存配置和硬件需求等方面的示例。 4. **分布式搜索**:在SolrCloud模式下,如何配置和管理多个节点,实现数据的自动复制和故障转移。 5. **自定义插件开发**:...

    apache-solr-dataimportscheduler-1.0.zip_official54l_solr 5.x定时生成

    例如,设置合理的数据导入批次大小、使用缓存策略减少数据库查询压力、处理导入失败时的重试机制等。 总的来说,"apache-solr-dataimportscheduler-1.0.zip"是一个为Solr 5.x提供定时索引生成能力的重要工具,它...

    solr-7.1.0.zip solr搜索引擎安装包

    3. `example`:包含了一个示例配置,展示了如何设置和运行Solr的基本步骤。 4. `dist`:包含Solr的jar文件和其他依赖库。 5. `contrib`:包含了一些额外的功能模块,比如数据分析器、图表和地图等。 在部署Solr时,...

Global site tag (gtag.js) - Google Analytics