Solr httpCache缓存的作用是什么
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇内容介绍了"Solr httpCache缓存的作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年12月04日Solr httpCache缓存的作用是什么
本篇内容介绍了"Solr httpCache缓存的作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
| solr httpCache 主要是用来判断当前的搜索请求request的请求头header的If-Modified-Since和If-None-Match的两个值, If-Modified-Since和If-None-Match这两个header信息可以参考我的另一篇文章 有关Last-Modified 与 If-Modified-Since 要想Solr的httpCache缓存生效,需要修改solr的配置文件solrconfig.xml,因为solr的过滤器会做如下判断: HttpCacheHeaderUtil.setCacheControlHeader(config, resp, reqMethod); if (config.getHttpCachingConfig().isNever304() || !HttpCacheHeaderUtil.doCacheHeaderValidation(solrReq, req, reqMethod, resp)){ 这里是没有httpcache缓存要做的所有工作。 } 要缓存,首先让solr生成header信息,这个代码就是HttpCacheHeaderUtil.setCacheControlHeader里完成的, 代码如下: if (Method.POST==method || Method.OTHER==method) { return; } final String cc = conf.getHttpCachingConfig().getCacheControlHeader(); if (null != cc) { resp.setHeader("Cache-Control", cc); } Long maxAge = conf.getHttpCachingConfig().getMaxAge(); if (null != maxAge) { resp.setDateHeader("Expires", System.currentTimeMillis() + (maxAge * 1000L)); } 但是solr默认是没有启用的,需要改solrconfig配置文件,改动如下: 两个可以任选一个,如果两个都选,则第一个有效。 把这个httpcache的注释去掉就可以,solr在初始化时取cacheControl这个值的。上面代码CC就是cacheControl的值, 从上面代码可以看出,max-age的值写到header的Expires表示该资源的有效期,单位没秒。 public 表示可以所有的资源。如果cc的值为空的话,SOlr就不会生成header信息,导致在客户端下次请求时相关的header信息就位空。 config.getHttpCachingConfig().isNever304() 的值就是配置文件solrconfig.xml中 所以要启用httpcache缓存,先把这个值改为false,这里改好了,solr就根据head头来判断是否要直接用httpcache了。这个就是在HttpCacheHeaderUtil.doCacheHeaderValidation里判断实现的.代码如下: if (Method.POST==reqMethod || Method.OTHER==reqMethod) { return false; } final long lastMod = HttpCacheHeaderUtil.calcLastModified(solrReq); final String etag = HttpCacheHeaderUtil.calcEtag(solrReq); resp.setDateHeader("Last-Modified", lastMod); resp.setHeader("ETag", etag); if (checkETagValidators(req, resp, reqMethod, etag)) { return true; } if (checkLastModValidators(req, resp, lastMod)) { return true; } 从上面可以看出,如果是post请求,不会启用httpCache缓存, lastMod 的值是索引最近修改时间,这里是根据取的是 里lastModifiedFrom的值来计算,当为opentime时,lastModifiedFrom为solr index的打开时间。如果没有,默认也是。 etagSeed的值是用来计算etag 的,根据etag的值生成一个唯一的值。并写会给客户端。 |
"Solr httpCache缓存的作用是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
缓存
代码
就是
两个
信息
文件
生成
配置
作用
有效
内容
客户
客户端
时间
更多
知识
资源
有关
实用
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
土地数据库
权限管理通用数据库
软件开发模型作用
沙河市网络安全管理培训
博尔塔拉软件开发性能
计算机编程和数据库考试题
挖矿网络安全会议记录
软件开发项目现金流量
php主从数据库
外网链接云数据库延迟多高
网络安全执法十大类案例
数据库修改表名mysql
无法从服务器获取数据是什么意思
计算机网络技术电子版第八版
在数据库中产生数据不一致的根
网络安全周简述
网络安全编程的特点
安装数据库实例错误怎么办
如何ie浏览器网络安全设置
商场规划软件开发
河南千骏网络技术有限公司
奇趣网络技术有限公司官网
安卓无障碍抢购软件开发
家校网络安全教育观看心得
陕西软件开发价格
普陀区工程网络技术特点
学校寒假期间网络安全工作总结
软件开发如何避坑
网络技术分析师前景
口碑好的手机app软件开发定制