Solr索引在server.request(up)上失败

时间:2012-04-20 04:59:54

标签: solr indexing

在索引到solr时,我收到这样的错误。

 HTTP Status 500 - lazy loading error
 org.apache.solr.common.SolrException: lazy loading error at
 org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:260)
 at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)
 at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) at
 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
 at
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
 at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
 at
 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
 at

形成的网址是:http://localhost:8080/solr/update/extract?Latitude=51.9125&Longitude=179.5&commit=true&waitFlush=true&waitSearcher=true&wt=javabin&version=2

(我在Windows机器上使用Xampp配置了tomcat)

我一直在关注SOF和其他各种博客/论坛并尝试调试它,但几个小时我找不到任何东西。

我在solr.xml中添加了以下内容

<maxFieldLength>10000</maxFieldLength>
<writeLockTimeout>60000</writeLockTimeout>
<commitLockTimeout>60000</commitLockTimeout>

<lockType>simple</lockType>
<unlockOnStartup>true</unlockOnStartup>
<reopenReaders>true</reopenReaders>

<requestParsers enableRemoteStreaming="true" 
multipartUploadLimitInKB="2048000" />

<lst name="defaults">
<!--str name="echoParams">explicit</str-->
<!--int name="rows">10</int-->
<!--str name="df">text</str-->
<str name="Latitude">Latitude</str>
<str name="Longitude">Longitude</str>
</lst>

甚至尝试将以下内容添加到solconfig.xml并重新启动tomcat我得到

   <requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler"> 
     <lst name="defaults"> 
     <str name="ext.map.Last-Modified">last_modified</str> 
     <bool name="ext.ignore.und.fl">true</bool> 
     </lst> 
     </requestHandler> 

在Java控制台上显示错误: org.apache.solr.common.SolrException:内部服务器错误

  1. 我意识到问题可能是因为我的solr主路径。我创建了一个新目录并复制了那里的所有配置文件并将其作为我的solr路径提到。但是,我稍后更新了solrconfig.xml,更正了所有jar的路径。

  2. 还尝试将'pdfbox和fontbox'jars添加到solr lib文件夹并重新启动Tomcat

  3. 我的Java代码是:

     String urlString = "http://localhost:8080/solr"; 
        SolrServer server = new CommonsHttpSolrServer(urlString);
        ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");
        String fileName=f.toString();
        up.addFile(new File(fileName));
        up.setParam("Latitude", Latitude);
        up.setParam("Longitude", Longitude);
        up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
        server.request(up);
    

    (Port8080是我配置的那个)

    仍然solr索引不能在我的工作结束..我已经尝试了几个小时调试这个并搞清楚。如果你能给我一些暗示或暗示我做错了,那真的很棒。

      

    至于你的参考我已经尝试过了:   http://wiki.apache.org/solr/FrontPage   http://wiki.apache.org/solr/ContentStreamUpdateRequestExample   http://wiki.apache.org/solr/UpdateRichDocuments   http://wiki.apache.org/solr/ExtractingRequestHandler#Configuration   http://lucene.472066.n3.nabble.com/Problem-using-ExtractingRequestHandler-with-tomcat-td494930.html   http://lucene.472066.n3.nabble.com/Internal-Server-Error-td715713.html   How to index pdf's content with SolrJ?

2 个答案:

答案 0 :(得分:2)

最后,我找到了解决这个问题的方法。

只需修改SOLR_HOME/conf/solrconfig.xml,将<tab>代码的所有dir属性从"../../dist/"更改为"../dist/",保存文件

如果遇到此问题,solr目录必须从apache-solr-x.x.x\example移至其他位置,因此需要相应更改相对路径"../../dist/"

请记住重新启动tomcat并查看它是否有效。

答案 1 :(得分:1)

您的班级路径中是否有solr-cell.jar? ?

ExtractingRequestHandler位于solr-cell.jar中,它没有与默认的solr-server一起打包