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)
================================================
- 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" />
相关推荐
找到`<cache>`元素,创建新的缓存配置,指定为`solr.MemcachedCacheFactory`。例如: ```xml <cache name="queryResultCache" class="solr.search.LRUCache" shared="true" size="512" initialSize="512" ...
- **核心特性**:Solr具备高效的缓存机制、灵活的垂直搜索能力、高亮搜索结果、通过索引复制增强系统可用性、强大的数据模式定义以及用户友好的Web管理界面等。 #### 二、Solr 3.5的下载与安装 - **下载地址**: ...
2. **缓存配置**:合理配置缓存策略可以显著提升性能,减少数据库的负担。 3. **分布式部署**:通过Sharding和Replication机制实现Solr集群的分布式部署,提高系统的可用性和扩展性。 4. **监控工具**:使用Solr提供...
1. `solrconfig.xml`:这是Solr的主要配置文件,包含索引、查询、更新处理链、缓存设置等内容。例如,可以通过设置`updateHandler`来定义数据如何被索引,通过`requestHandler`定义查询请求的处理方式。 2. `schema...
#### 七、使用Solr缓存 Solr支持多种缓存机制,包括QueryResultCache、FieldValueCache等,这些缓存可以帮助提高搜索性能。 1. **Cache生命周期**:了解各种缓存的生命周期管理机制,比如何时清理缓存、如何设置...
然后解压缩并配置 Tomcat,修改 `server.xml` 文件以设置端口和字符编码(如添加 `URIEncoding="UTF-8"` 防止中文乱码)。将 Solr 的 `war` 文件重命名后部署到 Tomcat 的 `webapps` 目录下,并创建 `solr.xml` 文件...
例如,它包含了索引写入策略(如实时添加文档)、缓存设置(如查询结果缓存和文档过滤器缓存)、请求处理器的配置以及搜索组件的定义等。 2. **schema.xml**: 此文件定义了Solr的字段类型(FieldTypes)和字段...
Solr 还允许自定义缓存配置,包括设置缓存大小、替换策略(如LRU、LFU或FIFO)以及缓存的内存分配。在 Solr 的配置文件(如solrconfig.xml)中,可以通过指定缓存的名称、容量、替换策略等参数来调整这些设置。 在...
- `solrconfig.xml`:这是Solr的主要配置文件,用于设置索引、查询、缓存等行为。 - `schema.xml`:定义字段类型和字段,用于解析和存储文档内容。 3. **SolrCloud模式** - 在分布式环境中,Solr运行在SolrCloud...
每种缓存都有其特定的配置选项,包括缓存大小、过期时间等,可以通过Solr的配置文件进行调整。 #### 四、solr基于Cache的优化 1. **查询结果缓存应用**:通过启用`queryResultCache`,Solr可以在内存中保存查询...
- **缓存机制**:Solr有多种缓存,如查询结果缓存、文档值缓存等,可以显著提高性能。 - **分布式搜索**:通过ShardRequest和ShardResponse处理跨节点通信,优化大规模数据的搜索效率。 通过深入研究`solr-9.0.0-...
在"solr-8.11.1.zip"这个压缩包中,用户可以找到Solr的核心组件和必要的配置文件,以便在本地或服务器上快速部署和运行。以下是对Solr 8.11.1中关键知识点的详细解释: 1. **SolrCloud模式**:从版本8开始,Solr...
记得在实际应用中,还需要根据具体需求调整Solr的其他配置,如缓存、查询分析器等,以优化性能和搜索结果质量。同时,随着Solr版本的更新,配置方法可能会有所变化,建议定期检查官方文档以获取最新信息。
4. 调整索引和查询性能,例如通过设置缓存、分析器和过滤器等。 5. 实施安全性配置,如使用 SolrCloud 进行分布式部署,以保证数据安全和高可用性。 6. 监控和日志分析,确保系统稳定运行,及时发现和解决问题。 在...
3. **配置与部署**:Solr的配置文件位于`conf`目录下,包括schema.xml(定义字段和字段类型)、solrconfig.xml(配置索引和查询参数)等。用户可以根据需求自定义这些配置。部署Solr通常涉及解压下载的`solr-4.10.3....
- 根据系统负载和性能需求,调整 Solr 的配置参数,例如增加索引段大小、调整缓存设置等。 以上就是 Solr 4.4.0 版本的主要知识点,以及如何在 Linux 环境下进行安装和部署到 Tomcat。通过熟练掌握这些步骤,你将...
这涉及到Schema设计(如哪些字段应被索引,哪些应被存储),配置优化(mergeFactor、缓存设置等),内存管理(防止内存溢出,合理分配JVM内存),以及更新频率和查询响应压缩等方面的权衡。 总的来说,掌握Solr的...
Solr内置了多种缓存机制,如查询结果缓存、文档缓存、过滤器缓存等,以提高查询速度和系统性能。 1.2.6 复制 Solr支持数据复制,确保在主节点故障时,数据不会丢失,保持服务的高可用性。 1.2.7 管理接口 Solr...
3. **搜索性能优化**:可能包含关于索引结构优化、查询缓存配置和硬件需求等方面的示例。 4. **分布式搜索**:在SolrCloud模式下,如何配置和管理多个节点,实现数据的自动复制和故障转移。 5. **自定义插件开发**:...
例如,设置合理的数据导入批次大小、使用缓存策略减少数据库查询压力、处理导入失败时的重试机制等。 总的来说,"apache-solr-dataimportscheduler-1.0.zip"是一个为Solr 5.x提供定时索引生成能力的重要工具,它...