本文描述solr的cache类型之一:filter cache。接下来,我会解释它是什么、怎么配置它以及如何更好的使用它。
What it is used for?
先从内部机制开始。FilterCache存储了一些无序的文档标识号(ID)。这些ID并不是我们在schema.xml里配置的unique key,而是solr内部的一个文档标识。请记住这个。
FilterCache的任务是保持与用户过滤的结果关联。另外,cache可以辅助facet机制(在使用TermEnum时),在solrconfig.xml中的<useFilterForSortedQuery/>参数设为true时,还可以进行排序。
FilterCache的标准定义如下:
- <filterCache
- class="solr.FastLRUCache"
- size="16384"
- initialSize="4096"
- autowarmCount="4096" />
有以下的配置可供选择:
class:实现类。建议使用solr.FastLRUCache,它能在大量的GET、PUT操作下,提供更好的性能。
size:cache的最大值。
initialSize:cache的初始化值。
autowarmCount:从旧的cache到新的cache时,需要被复制的数量。
minSize:在full restoraton的情况下,将cache减小后的值
acceptableSize:如果minSize没有设置,则该值会替代之
cleanupThread:默认false,如果设为true则会使用一个分离的topic来清理cache。
大部分情况下,设置initialSize和autowarmCount就已经足够了。
How to configure?
cache的大小,需要根据基本的查询语句而定;maximum大小应该至少等于我们使用的过滤字段的大小。举个例子说明:如果在某个时间内,你的应用程序使用了2000个查询参数,则minimum的大小应该最小设为2000。
Efficient use
然而,光有配置是不够的,我们还需要让查询能够使用它。请看下面的例子:
- q=name:solr+AND+category:ksiazka+AND+section:ksiazki
初看起来,查询语句是正确的。但是有个问题:它并没有用到filterCache。所有的请求将会绑定到queryResultCache中并创建一个单独的条目。我们来作一下修改:
- q=name:solr&fq=category:ksiazka&fq=section:ksiazki
有什么变化呢?在这个例子中,一个条目会写入到queryResultCache中;另外,还会有两个条目会写入到filterCache中。现在看一下下面的语句:
- q=name:lucene&fq=category:ksiazka&fq=section:ksiazki
这个查询会创建一个条目到queryResultCache中,但是会使用filterCache中两个已经存在的条目。这样查询的执行时间会降低,IO的使用也会节省。
然而,对于下面的查询:
- q=name:lucene+AND+category:ksiazka+AND+section:ksiazki
solr不能使用任何cache并且需要从lucene索引中收集所有的信息。
Last few words
就像你所看到的,配置cache 的正确方法不是如何保证solr能够使用它,而是如何构建查询语句来提升性能。当考虑查询的时候,请考虑这一点。
相关推荐
总之,部署 Solr 4.4 包括安装 JDK 和 Tomcat,配置 Solr 容器,设置 Solr 的 home 目录,安装中文分词器,以及对 Tomcat 进行调优。通过这些步骤,我们可以创建一个高效、稳定且支持中文搜索的 Solr 实例。维护过程...
在Windows 7操作系统中安装Apache Solr 4.4并将其部署到Tomcat 8是一项重要的配置工作,这对于搭建基于Solr的全文检索系统至关重要。下面将详细解释这个过程涉及的关键知识点。 首先,我们需要安装Java Development...
【Windows环境下部署Solr4.4】 Solr4.4是一款强大的开源全文搜索引擎,由Apache Lucene项目维护。在Windows操作系统上部署Solr4.4,可以为用户提供高效的全文检索和索引服务。以下是详细的部署步骤: 1. **下载与...
在实际应用中,可能还需要根据具体需求进行进一步的配置优化,例如调整内存设置、修改默认的搜索参数等。此外,对于生产环境,建议关注Solr的文档和社区,以获取最佳实践和最新的更新信息。Solr社区活跃,有众多...
solr4.4版本,解压后可以放于tomcat下运行,可以配置数据库连接及SQL语句,将查询结果放在solr中缓存,项目直接操作solr,可以配置定时任务(PS:定时任务只支持到4.4版本,以后版本目前没有)solr作为数据库和项目...
总的来说,Solr的`manageschema`配置文件是理解和优化搜索行为的关键,它定义了数据的结构和处理方式,直接影响到搜索效率和准确性。通过适当地配置分词器和过滤器,可以更好地满足不同语言和应用场景的需求。
### Solr中Cache综述及优化策略 #### 一、概述 Apache Solr是一个高性能、可伸缩的企业级搜索平台,它基于Lucene构建,在实际应用中为了提高查询效率和性能,内置了一系列缓存机制(Cache)。这些缓存机制不仅能够...
求中多次命中的缓存。由于它避免了锁竞争,FastLRUCache 可能...通过理解各种缓存类型、替换策略及其工作原理,我们可以更好地优化 Solr 配置,以满足特定应用场景的需求,提高搜索服务的响应速度和系统资源利用率。
本篇参考手册是针对Apache Solr 4.4版本的详细介绍,包含了从安装、配置到使用的详细步骤,以及对其背后原理的深入探讨。 首先,手册的Getting Started部分指导用户如何安装和设置Solr。这部分内容适合那些刚开始...
docker配置solr登录密码文件,内含配置密码的文件 、web.xml的文件 ,详情可以去看我的博客,博客地址:https://blog.csdn.net/huyande123/article/details/97110784
在本文中,我们将详细探讨如何配置 Solr 5.4 开发环境,包括安装、配置、以及数据导入,同时也会提及 mmseg4j 分词器的使用。 首先,让我们了解 mmseg4j。这是一款适用于Java的中文分词库,它能够有效地对中文文本...
### Solr 在 Tomcat 下的搭建与配置数据库详解 #### 一、Solr 在 Tomcat 下的搭建步骤 **步骤1:准备Solr环境** ...在实际应用中,根据具体的需求可能还需要进一步调整Solr的配置参数以优化性能。
本文将详细介绍如何进行 Solr 的安装与配置。 首先,安装 Solr 需要先确保你的系统已经安装了 Java Development Kit (JDK) 1.6 或以上版本,因为 Solr 需要依赖 JDK 来运行。你可以从 Oracle 的官方网站下载并安装...
通过对Solr进行合理的优化配置,不仅可以提高系统的整体性能,还能确保系统的稳定性和可靠性。在实践中,需要根据具体情况灵活运用不同的扩展策略,并结合有效的监控手段,以达到最佳的优化效果。
在 Solr 8 中,为了确保系统的安全性和数据的隐私性,配置用户登录验证是非常重要的步骤。本文将详细介绍如何对手动配置 Solr 8 的用户登录验证。 首先,我们需要了解 Solr 的安全组件——Jetty 容器。Solr 默认...
### Solr搜索服务器安装配置详解 #### 一、Solr简介 Apache Solr是一款开源的高性能全文搜索引擎,基于Lucene库构建。它采用Java开发,提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索功能到...