`
zhengchao860730
  • 浏览: 62477 次
  • 性别: 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安装与配置

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

    solr的优化实例1

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

    solr搜索服务器安装配置

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

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

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

    Solr入门配置说明

    【Solr入门配置说明】 Solr,全称为Apache Solr,是一个开源的、基于Java的企业级搜索应用服务器。它提供了一种高效、可扩展的全文检索能力,支持多种数据源,如XML、JSON等,通过HTTP接口进行通信,使得开发者能够...

Global site tag (gtag.js) - Google Analytics