1.6.8 Content Streams
1. Content Streams
当RequestHandlers请求基于URL路径来访问时,SolrQueryRequest包含了请求的参数,同样包含了ContentStreams(包含了大容量数据)列表.
1.1 Stream Sources
目前RequestHandlers可以通过多种方式获取content stream.
- 对于多个文件上传,每个文件作为一个stream传递.
- 对于POST请求,内容类型不能是application/x-www-form-urlencoded.POST的主体是作为stream传递的.整个POST的主体作为参数解析,并包含在solr参数中.
- stream.body参数的内容作为stream传递.
- 如果远程stream传递开启的话,可以调用URL请求.每个stream.url和stream.file参数的内容被抓取,并被作为stream传递.
默认情况下,curl 发送一个application/x-www-form-urlencoded头部.如果你想要测试一个SolrContentHeader stream.你需要使用 "-H"设置stream 类型 .
1.2 RemoteStreaming
远程传递stream让你发送一个URL的内容作为stream传递给SolrRequestHandler.由于一些安全原因,remote streaming在solrconfig.xml中是关闭的状态.
注意:如果开启streaming,这允许发送一个请求到任何URL或本地文件.如果仓库(dump)开启,将会允许任何系统访问你的系统上的文件.
<!--Make sure your system has authentication before enabling remote streaming!--> <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
1.3 Debugging Requests
<requestHandler name="/debug/dump" class="solr.DumpRequestHandler" />
这个句柄使用指定的writer 类型wt.简单输出SolrQueryRequest的内容.这是一个非常有用的工具在帮助理解什么样的streams对于SolrQueryRequest是可以使用的.