使用 ContentStreamUpdateRequest 将 doc/pdf/docx 文件索引到 solr 中



嗨,我在这里使用 Solr 4.7.2 为文档编制索引。

使用ContentStreamUpdate请求solrj我正在尝试在Solr中索引文件,但是虽然我正在使用UI发送文件路径和唯一ID字段作为输入

在发送 ContentStreamUpdateRequest 的对象时的操作类中,将参数传递给 solrServer 对象即

SolrServer solrServer = ..;
solrServer.request(contentStreamUpdateRequest);

我收到以下错误

Exception:
    org.apache.solr.client.solrj.SolrServerException
Exception message:
    error reading streams

异常跟踪:

at   org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:382)
at   org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:199)
at   com.adastra.candidate.search.solr.action.SolrUpdateAction.aaaExecute(SolrUpdateAction.java:49)
at   com.adastra.base.action.BaseAction.execute(BaseAction.java:181)
at   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at   org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at   org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at   org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at   java.lang.Thread.run(Unknown Source) 

可以建议我修复它。

我认为在 4.7.2 版中默认情况下禁用流式传输,您必须在文件 solrconfig 中启用它.xml

改变

<requestParsers enableRemoteStreaming="false" 

<requestParsers enableRemoteStreaming="true" 

另外,请查看文档http://wiki.apache.org/solr/SolrSecurity#Streaming_Consideration

让我知道这是否解决了问题。启用远程流式处理时请注意安全性。

最新更新