将Apache TIKA和Solr Cell与Solr集成,以索引pdf和word文档



我正在使用solr搜索引擎对pdf和word文档进行POC索引。我试图搜索详细级别的信息或文章,但没有找到任何详细的文章。我发现的是使用一些solr包提供的示例。这不是我所要求的。

我目前掌握的信息是,可以使用Solr Cell和Apache Tika来索引pdf文档。

从一些赌注溢出中我找到了链接http://wiki.apache.org/solr/ExtractingRequestHandler但它不是教程,也不是有步骤来做我想做的事。另外,我想使用solrnet从.net应用程序调用solr。

我使用的是Solr 5.1版本。

我提供了我从solr参考文档中运行的示例代码,如下

bin/solr -e techproducts

它以techproducts核心启动了示例solr实例。之后,我运行下面的命令来索引pdf文档。

curl "http://localhost:8983/solr/techproducts/update/extract?literal.id=doc1&commit=true" -F "myfile=@example/exampledocs/solr-word.pdf"

它运行得很好。

之后,我从tomcat托管的solr服务器创建了新的核心,并在上面尝试运行相同的curl命令和接收器错误。我在solrconfig.xml 中添加了以下请求处理程序代码

<requestHandler name="/update/extract" 
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>

脚本:

C:tomcat-solr>curl "http://localhost:8090/solr/Core3/update/extract?literal.id=
doc1&commit=true" -F "myfile=@example/exampledocs/solr-word.pdf"

错误:

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="error"><str name="msg">Error loading class 'solr.extraction.Extractin
gRequestHandler'</str><str name="trace">org.apache.solr.common.SolrException: Er
ror loading class 'solr.extraction.ExtractingRequestHandler'
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.
java:492)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.
java:423)
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:561)
at org.apache.solr.core.PluginBag$LazyPluginHolder.createInst(PluginBag.
java:343)
at org.apache.solr.core.PluginBag$LazyPluginHolder.get(PluginBag.java:32
8)
at org.apache.solr.core.PluginBag.get(PluginBag.java:130)
at org.apache.solr.handler.RequestHandlerBase.getRequestHandler(RequestH
andlerBase.java:219)
at org.apache.solr.core.SolrCore.getRequestHandler(SolrCore.java:1263)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilte
r.java:382)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilte
r.java:220)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:106)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAcce
ssLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:668)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.pr
ocess(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpo
int.java:1517)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoin
t.java:1474)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
read.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: solr.extraction.ExtractingRequestHa
ndler
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.net.FactoryURLClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.
java:476)
... 27 more
</str><int name="code">500</int></lst>
</response>

我错过什么了吗?

查看错误,在solr库的提取库中似乎缺少apachesolr cell jar及其依赖项。

<lib dir="../../dist/" regex="apache-solr-cell-d.*.jar" />
<lib dir="../../contrib/extraction/lib" />

添加这些文件。。。

最新更新