RequestDispatcher

solrconfig.xmlrequestDispatcher 元素控制了 solr 的 HTTP RequestDispatcher 实现如何响应请求。其参数定义了是否要处理 /select url,是否应支持远程流,上传文件的最大尺寸,及它如何响应 HTTP cache 头

handleSelect

handlerSelect 是为了向后兼容,新的 solr 爱好者没有必要修改默认的配置

<requestDispatcher> 元素的首个配置项是 handleSelect。取值为 "true" 或 "false"。它控制着 solr 怎样响应 /select?qt=XXX 这样的请求。默认值为 "false" 表示如果一个 requestHandler 没有明确的注册到 /select 则忽略 /select。"true" 将路由查询请求到 qt 定义的解析器

在 solr 最新版本里,/select requestHandler 是默认定义的,所以 false 设置会很好的生效。参考 RequestHandler 和 SearchComponent获取更多信息

<requestDispatcher handleSelect="true" >
  ...
</requestDispatcher>

requestParsers

requestParsers> 控制解析请求。这是个空 xml 元素,没有内容只有属性。

enableRemoteStreaming 属性控制是否允许远程内容流。false 不允许流,默认为 true 让你指定内容的位置,使用 stream.filestream.url 参数

如果允许远程流,确保开启验证。否则,其他人可能通过任意 url 访问你的内容。把 solr 放在防火墙后面来防止不受信任的客户端访问也是个好主意。

multipartUploadLimitInKB 设定了通过 HTTP POST 请求提交的文档的最大尺寸,单位为 KB。

formDataUploadLimitInKB 设定了 HTTP POST 提交的表单数据(application/x-www-form-urlencoded)的最大尺寸,KB

addHttpRequestToContext 用于表明原始的 HttpServletRequest 对象应该被包含在 SolrQueryRequest 的上下文里,使用 httpRequest 为 key。这个 HttpServletRequest 不会被任何 Solr component 使用,但开发自定义的插件时可能会有用。

<requestParsers enableRemoteStreaming="true"
    multipartUploadLimitInKB="2048000"
    formdataUploadLimitInKB="2048"
    addHttpRequestToContext="false" />

httpCaching

httpCaching 控制 HTTP cache 控制头。不要和 solr 内部的 cache 配置混淆,这个元素控制 HTTP 响应的 caching 是在 W3C HTTP 规范里定义的

这个元素有 3 个属性和 1 个子元素。<httpCaching> 控制 GET 请求是否返回一个 304,如果是,响应应该是啥。当一个 HTTP 客户端应用发布一个 GET,如果资源在它上次获取以后没有被修改,会指定一个 304 响应

参数 描述
never304 true 表示 GET 请求永远不会返回 304,即便请求的资源没有被修改。同时其他 2 个属性被忽略。设为 true 是为了方便开发
lastModFrom 取值为 openTime(默认) 或 dirLastModopenTime 表示最后修改时间,即用来与客户端发送的 If-Modified-Since 头信息比较的时间,是 searcher 启动的时间。如果你想要索引最后在磁盘更新的精确时间,使用 dirLastMod
etagSeed ETag 头信息的值。修改这个值有助于强制客户端重新获取内容,即使索引没有改变——例如,如果对配置做了修改。
<httpCaching never304="false"
      lastModFrom="openTime"
      etagSeed="Solr">
  <cacheControl>max-age=30, public</cacheControl>
</httpCaching>

cacheControl

上面的属性之外,<httpCaching> 有个子元素: <cacheControl>。这个元素的内容将作为 HTTP 响应头 Cache-Control 的值。这个头用来修改请求客户端的默认的 caching 行为。Cache-Control 头可能的取值在 HTTP 1.1 规范的 14.9 章节定义

设置 max-age 字段控制客户端在重新请求之前可以重用 cache 响应多久。设置这个时间间隔应根据你多久更新你的索引,且无论你的应用程序使用的内容有点点过期。

must-revalidate 设置要求客户端在重用前向服务器确认其 cache 副本依然有效。这会确保使用更及时的结果,避免不必要的第二次获取

results matching ""

    No results matching ""