Solr httpCache缓存的作用是什么
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"Solr httpCache缓存的作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
互联网金融科技
互联网科技海报
深圳九邦互联网科技有限公司
互联网科技公司起名
科技赋能下的互联网金融
重庆互联网络科技
智网互联网科技
有马互联网科技
美国互联网黑科技
互联网科技logo设计
多迪互联网科技有限公司
互联网为啥属于高科技
广州新华互联网科技学校电竞方面
山东有哪些互联网科技公司
黑云互联网科技有限公司
湖北辰鑫科技互联网
中国互联网公司的科技投入
10位科技互联网大佬
互联网领先科技成果宣传视频
优雇互联网科技有限公司
广东万易互联网科技有限公司惠州分公司
互联网科技行业发展
互联网医疗科技
人人互联网科技是培训
卫星互联网科技股票
中国科技互联网公司收入
央行互联网金融科技公司
如何创新互联网科技
北京瑞云互联网科技有限公司
互联网科技快速发展优美句子