之前在 这篇博客中 (http://suichangkele.iteye.com/blog/2365868)写到了关于solr所使用的cache的统计信息的获取,但是他只在更新SolrIndexSearcher的时候才会触发,那么如何能随时的查看cache的使用情况呢?倒着推:如果要查找缓存的使用,必须获得SolrCore,获得SolrCore太简单了,任何一个Request都可以获得SorlCore,那么只要添加一个RequestHandler就可以了。我的代码如下:
public class CacheStatisticsRequestHandler extends RequestHandlerBase{ /**这四个参数分别对应solrconf.xml中的四个缓存的名字*/ public static final String filterCache_name = "filterCache"; public static final String queryResultCache_name = "queryResultCache"; public static final String documentCache_name = "documentCache"; public static final String fieldValueCache_name = "fieldValueCache"; private static final Logger logger = LoggerFactory.getLogger(CacheStatisticsRequestHandler.class); @Override public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { logger.debug("参数是:" + req.getParams()); Map<String, SolrInfoMBean> info = req.getCore().getInfoRegistry(); rsp.add(CacheStatisticsRequestHandler.filterCache_name, info.get(CacheStatisticsRequestHandler.filterCache_name).getStatistics()); rsp.add(CacheStatisticsRequestHandler.queryResultCache_name, info.get(CacheStatisticsRequestHandler.queryResultCache_name).getStatistics()); rsp.add(CacheStatisticsRequestHandler.documentCache_name, info.get(CacheStatisticsRequestHandler.documentCache_name).getStatistics()); rsp.add(CacheStatisticsRequestHandler.fieldValueCache_name, info.get(CacheStatisticsRequestHandler.fieldValueCache_name).getStatistics()); } /**这个方法会自动的被调用,不用显示在构造方法中调用*/ @Override public void init(NamedList args) { super.init(args); logger.info("初始化" + this.getClass().getName() + "实例"); } @Override public String getDescription() { return null; } }
然后再solrconf.xml中配置一下就可以了
<requestHandler name="/cacheStats" class="com.comall.requestHandler.CacheStatisticsRequestHandler "> <!--自己定义的requestHandler--> </requestHandler>
然后在浏览器中访问一下这个requestHandler就可以了 。
相关推荐
### Solr中Cache综述及优化策略 #### 一、概述 Apache Solr是一个高性能、可伸缩的企业级搜索平台,它基于Lucene构建,在实际应用中为了...此外,还需要注意监控缓存的使用情况,确保它们能够有效地支持系统的运行。
它通常用于预加载可能在多个查询中使用的过滤器集合。 5. 预热缓存(QueryResultKeyCache):当新搜索器打开时,用于预热查询结果缓存,确保高流量查询的快速响应。 Solr 还允许自定义缓存配置,包括设置缓存大小...
- **使用Solr Admin UI**:每个Solr节点都提供了一个Admin UI页面,可以查看该节点的状态和性能指标。 - **使用SolrCloud API**:通过调用SolrCloud API获取集群的状态信息。 #### 七、使用Solr缓存 Solr支持多种...
- **5.2 线上环境运行报告**:记录Solr在真实生产环境中的运行情况。 #### 六、solr性能调优 - **6.1 Schema Design Considerations** - **6.1.1 indexed fields**:讨论索引字段的选择和设计。 - **6.1.2 ...
解答关于Solr使用过程中可能遇到的问题,如乱码和查不到结果的排查方法。 这个SOLR应用教程涵盖了从基础概念到实际应用,包括安装配置、索引和搜索操作、SolrJ的使用以及性能优化等多个方面,为读者提供了一个全面...
9. **性能优化**:Solr包含多种性能优化策略,如块级存储(Block Store)、缓存机制(Query Result Cache、Document Cache等)以及并发控制策略,以提高查询速度和系统响应时间。 10. **监控与日志**:Solr提供了...
为了确保Memcached的性能和稳定性,可以使用第三方工具如`mcmon`或Memcached的管理界面来监控其状态,包括命中率、内存使用情况等。同时,根据Solr的查询负载动态调整Memcached的设置。 6. **多节点部署** 在...
Solr的功能包括分布式索引设计,它允许索引自动分割成多个部分,并且能够在不停止Solr服务器的情况下更改配置。Solr还具备高可用性,没有单点故障,并且集成了Apache Zookeeper进行分布式协调和元数据集群。Solr还能...
在Solr中,分页主要通过`start`和`rows`参数来实现。`start`参数定义了从哪个文档开始返回结果,`rows`参数指定了返回结果的数量。例如,如果你想获取第一页的10条结果,可以设置`start=0`和`rows=10`。第二页则将`...
9. **搜索性能优化**:Solr提供多种手段来优化搜索性能,如使用倒排索引、缓存策略、查询过滤器缓存(QueryResultCache)、文档缓存(DocumentCache)等。 总的来说,Solr-4.9.1是一个全面的搜索引擎解决方案,它...
在Java环境中使用Solr,我们需要引入相应的Jar包来支持Java代码与Solr服务器进行交互。下面将详细介绍Solr与Java集成的关键知识点,以及如何管理和使用相关的Jar文件。 1. **SolrJ**:SolrJ是Solr提供的Java客户端...
- **索引统计数据**:监控IndexReader和IndexWriter的活动状态,包括缓存使用情况、索引更新的时间等。 - **搜索统计数据**:记录查询操作、搜索器性能、处理时间等相关信息。 - **存储统计数据**:监控Lucene存储...
这些缓存在`Cache`接口和相关实现类中定义。 10. **插件系统**:Solr允许用户自定义查询解析器、过滤器、请求处理器等,源代码中有很多插件实现的例子。 通过研究Apache Solr 3.6.1的源代码,不仅可以深入了解其...
虽然给定的部分内容中没有提及具体的Solr调优方法,但在实际应用中,Solr的性能优化可以从以下几个方面着手: 1. **索引结构优化**:合理设计索引结构,包括字段类型、分词器的选择等。 2. **查询优化**:使用高效...
- **缓存机制**:合理利用缓存可以极大地提高查询速度,如使用 QueryResultCache 和 DocValuesCache 等。 2. **查询优化**: - **过滤器与排序**:使用过滤器而不是查询来限制结果集,这可以显著提高查询效率。 ...
- **2.2.1 mmseg4j**:mmseg4j是一种基于最大匹配算法的中文分词库,可以在Solr中使用它来提高中文文本的搜索效果。 - **2.2.2 paoding**:paoding是一款高性能的中文分词工具,同样适用于Solr,支持自定义词典和...
使用Solr的高亮功能可以在搜索结果中突出显示匹配的关键词。 #### 四、SolrJ的用法 **4.1 搜索接口的调用实例** 示例代码展示如何使用SolrJ API执行搜索操作。 **4.2 Solrj的使用说明** - **4.2.1 ...
默认情况下,如果没有指定其他路径,则会使用 `d:/Server/Solr/data` 作为存储路径。这对于部署和管理 Solr 实例非常重要,因为它决定了索引数据的物理位置,这对备份和恢复等操作至关重要。 **luceneMatchVersion*...