`
zhengchao860730
  • 浏览: 62661 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Solr4.4 优化之 Filter Cache配置

阅读更多

 

 

      本文描述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的标准定义如下: 

Xml代码  收藏代码
  1. <filterCache  
  2.     class="solr.FastLRUCache"  
  3.     size="16384"  
  4.     initialSize="4096"  
  5.     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 
    然而,光有配置是不够的,我们还需要让查询能够使用它。请看下面的例子: 

Url代码  收藏代码
  1. q=name:solr+AND+category:ksiazka+AND+section:ksiazki  



初看起来,查询语句是正确的。但是有个问题:它并没有用到filterCache。所有的请求将会绑定到queryResultCache中并创建一个单独的条目。我们来作一下修改: 

Url代码  收藏代码
  1. q=name:solr&fq=category:ksiazka&fq=section:ksiazki  



有什么变化呢?在这个例子中,一个条目会写入到queryResultCache中;另外,还会有两个条目会写入到filterCache中。现在看一下下面的语句: 

Url代码  收藏代码
  1. q=name:lucene&fq=category:ksiazka&fq=section:ksiazki  



这个查询会创建一个条目到queryResultCache中,但是会使用filterCache中两个已经存在的条目。这样查询的执行时间会降低,IO的使用也会节省。 

然而,对于下面的查询: 

Url代码  收藏代码
  1. q=name:lucene+AND+category:ksiazka+AND+section:ksiazki  



solr不能使用任何cache并且需要从lucene索引中收集所有的信息。 

Last few words 
就像你所看到的,配置cache 的正确方法不是如何保证solr能够使用它,而是如何构建查询语句来提升性能。当考虑查询的时候,请考虑这一点。 

 

 

分享到:
评论

相关推荐

    solr4.4部署、维护、调优

    总之,部署 Solr 4.4 包括安装 JDK 和 Tomcat,配置 Solr 容器,设置 Solr 的 home 目录,安装中文分词器,以及对 Tomcat 进行调优。通过这些步骤,我们可以创建一个高效、稳定且支持中文搜索的 Solr 实例。维护过程...

    windows 7 solr4.4安装进tomcat8中

    在Windows 7操作系统中安装Apache Solr 4.4并将其部署到Tomcat 8是一项重要的配置工作,这对于搭建基于Solr的全文检索系统至关重要。下面将详细解释这个过程涉及的关键知识点。 首先,我们需要安装Java Development...

    windows 下 部署 solr4.4

    【Windows环境下部署Solr4.4】 Solr4.4是一款强大的开源全文搜索引擎,由Apache Lucene项目维护。在Windows操作系统上部署Solr4.4,可以为用户提供高效的全文检索和索引服务。以下是详细的部署步骤: 1. **下载与...

    solr4.4.0入门配置步骤

    在实际应用中,可能还需要根据具体需求进行进一步的配置优化,例如调整内存设置、修改默认的搜索参数等。此外,对于生产环境,建议关注Solr的文档和社区,以获取最佳实践和最新的更新信息。Solr社区活跃,有众多...

    solr4.4版本

    solr4.4版本,解压后可以放于tomcat下运行,可以配置数据库连接及SQL语句,将查询结果放在solr中缓存,项目直接操作solr,可以配置定时任务(PS:定时任务只支持到4.4版本,以后版本目前没有)solr作为数据库和项目...

    solr_solr_

    总的来说,Solr的`manageschema`配置文件是理解和优化搜索行为的关键,它定义了数据的结构和处理方式,直接影响到搜索效率和准确性。通过适当地配置分词器和过滤器,可以更好地满足不同语言和应用场景的需求。

    solr中cache综述

    ### Solr中Cache综述及优化策略 #### 一、概述 Apache Solr是一个高性能、可伸缩的企业级搜索平台,它基于Lucene构建,在实际应用中为了提高查询效率和性能,内置了一系列缓存机制(Cache)。这些缓存机制不仅能够...

    solr cache部分 中文解释

    求中多次命中的缓存。由于它避免了锁竞争,FastLRUCache 可能...通过理解各种缓存类型、替换策略及其工作原理,我们可以更好地优化 Solr 配置,以满足特定应用场景的需求,提高搜索服务的响应速度和系统资源利用率。

    solr新版参考手册(apache-solr-ref-guide-4.4)

    本篇参考手册是针对Apache Solr 4.4版本的详细介绍,包含了从安装、配置到使用的详细步骤,以及对其背后原理的深入探讨。 首先,手册的Getting Started部分指导用户如何安装和设置Solr。这部分内容适合那些刚开始...

    docker配置solr登录密码文件

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

    solr5.4开发环境完整配置

    在本文中,我们将详细探讨如何配置 Solr 5.4 开发环境,包括安装、配置、以及数据导入,同时也会提及 mmseg4j 分词器的使用。 首先,让我们了解 mmseg4j。这是一款适用于Java的中文分词库,它能够有效地对中文文本...

    solr在tomcat下的搭建和配置数据库

    ### Solr 在 Tomcat 下的搭建与配置数据库详解 #### 一、Solr 在 Tomcat 下的搭建步骤 **步骤1:准备Solr环境** ...在实际应用中,根据具体的需求可能还需要进一步调整Solr的配置参数以优化性能。

    Solr安装与配置

    本文将详细介绍如何进行 Solr 的安装与配置。 首先,安装 Solr 需要先确保你的系统已经安装了 Java Development Kit (JDK) 1.6 或以上版本,因为 Solr 需要依赖 JDK 来运行。你可以从 Oracle 的官方网站下载并安装...

    solr的优化实例1

    通过对Solr进行合理的优化配置,不仅可以提高系统的整体性能,还能确保系统的稳定性和可靠性。在实践中,需要根据具体情况灵活运用不同的扩展策略,并结合有效的监控手段,以达到最佳的优化效果。

    手把手教你 对 solr8 配置用户登录验证 涉及到的配置文件

    在 Solr 8 中,为了确保系统的安全性和数据的隐私性,配置用户登录验证是非常重要的步骤。本文将详细介绍如何对手动配置 Solr 8 的用户登录验证。 首先,我们需要了解 Solr 的安全组件——Jetty 容器。Solr 默认...

    solr搜索服务器安装配置

    ### Solr搜索服务器安装配置详解 #### 一、Solr简介 Apache Solr是一款开源的高性能全文搜索引擎,基于Lucene库构建。它采用Java开发,提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索功能到...

Global site tag (gtag.js) - Google Analytics