Solr索引:内容流

内容流是与Solr请求一起传递的批量数据。

当使用基于路径的URL访问Solr RequestHandlers时,包含请求参数的SolrQueryRequest对象还可能包含为请求提供批量数据的ContentStreams列表。
(SolrQueryRequest这个名字有点误导性:它参与所有请求,无论是查询请求还是更新请求。)

内容流来源

目前请求处理器可以通过多种方式获取内容流:

  • 对于多部分文件上传,每个文件作为流传递。
  • 对于内容类型不是application/x-www-form-urlencoded的POST请求,原始POST正文作为流传递。
    完整的POST正文被解析为参数并包含在Solr参数中。
  • 参数stream.body的内容作为流传递。
    需要SOLR_ENABLE_STREAM_BODY=true
  • 每个stream.urlstream.file参数都被解析/获取并作为流传递。
    需要SOLR_ENABLE_REMOTE_STREAMING=true

默认情况下,curl发送一个contentType="application/x-www-form-urlencoded"头。
如果你需要测试SolrContentHeader内容流,你需要使用curl的-H标志设置内容类型。

远程流

远程流让你可以将URL的内容作为流发送到给定的Solr RequestHandler。
你可以使用远程流将远程或本地文件发送到更新插件。

远程流默认是禁用的。
在没有你和不受信任的远程客户端之间额外安全措施的生产环境中,不建议启用它。

重要

如果使用远程流,请注意这允许任何人向任何URL或本地文件发送请求。
并且通过调试请求中的DumpRequestHandler,任何人都可以查看Solr可以访问的内容。

使用此环境变量启用它:SOLR_ENABLE_REMOTE_STREAMING=true

数据源可以使用gzip压缩,Solr通常会检测到这一点。
检测基于Content-Encoding: gzip HTTP头的存在或文件以.gz或.gzip结尾。
Gzip不适用于stream.body

调试请求

隐式的”dump”RequestHandler(参见隐式请求处理器)简单地使用指定的编写器类型wt输出Solr QueryRequest的内容。
这是帮助理解RequestHandlers可用流的有用工具。

© 2025 Solr Community of China All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero