本篇内容介绍了“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) { 但是solr默认是没有启用的,需要改solrconfig配置文件,改动如下: <httpCaching never304="true" > <!– 两个可以任选一个,如果两个都选,则第一个有效。 把这个httpcache的注释去掉就可以,solr在初始化时取cacheControl这个值的。上面代码CC就是cacheControl的值, config.getHttpCachingConfig().isNever304() 的值就是配置文件solrconfig.xml中 <httpCaching never304="true" /> 的值,默认是true,从上面的if判断可以看出,为true的话,就是不启用httpCache缓存。 if (Method.POST==reqMethod || Method.OTHER==reqMethod) { if (checkETagValidators(req, resp, reqMethod, etag)) { if (checkLastModValidators(req, resp, lastMod)) { |
“Solr httpCache缓存的作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云搜网网站,小编将为大家输出更多高质量的实用文章!