hongblue 发表于 2017-12-19 17:48:02

点滴记录——Ubuntu 14.04中Solr与Tomcat整合安装

  转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965981
1. 安装jdk,tomcat    sudo apt-get install tomcat7 openjdk-7-jdk openjdk-7-jre2. 到http://lucene.apache.org/solr/下载最新的solr。注意别下到源代码包    solr-4.9.0.tgz    sudo mv solr-4.9.0.tgz /mnt    cd /mnt && sudo tar -xvf solr-4.9.0.tgz    sudo cp -r solr-4.9.0/dist/solr-4.9.0.war /var/lib/tomcat7/webapps/    sudo cp -r solr-4.9.0/example/solr /mnt/    cd /mnt/solr    sudo mkdir data    sudo chmod a&#43;w data    sudo vim collection1/conf/solrconfig.xml    将<dataDir>${solr.data.dir:}</dataDir>改为<dataDir>${solr.data.dir:/mnt/solr/data}</dataDir>    sudo cp -r /mnt/solr-4.9.0/example/lib/ext/* /usr/share/tomcat7/lib/    sudo cp -r/mnt/solr-4.9.0/example/resources/log4j.properties /usr/share/tomcat7/lib/    sudo vim /etc/tomcat7/Catalina/localhost/solr.xml    加入例如以下内容    <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?  >
    <Context docBase=&quot;/var/lib/tomcat7/webapps/solr.war&quot; debug=&quot;0&quot; crossContext=&quot;true&quot;>         <Environment name=&quot;solr/home&quot; type=&quot;java.lang.String&quot; value=&quot;/mnt/solr/data&quot; override=&quot;true&quot; />    </Context>    service tomcat7 restart    正常重新启动之后在/var/lib/tomcat7/webapps文件夹下会添加一个solr文件夹    改动/var/lib/tomcat7/webapps/solr/WEB-INF/web.xml将<!--    <env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>/put/your/solr/home/here</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type>    </env-entry>   -->    改为    <env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>/mnt/solr</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type>    </env-entry>    service tomcat7 restart    浏览器中输入127.0.0.1:8080/solr就OK了增加中文分词器1. 到https://github.com/chenlb/mmseg4j-solr中点击download中的链接去下载mmseg4j-solr-2.2.0-with-mmseg4j-core.zip2. sudo mv mmseg4j-solr-2.2.0-with-mmseg4j-core.zip /mnt/3. sudo unzip mmseg4j-solr-2.2.0-with-mmseg4j-core.zip4. sudo mv mmseg4j-*.jar/var/lib/tomcat7/webapps/solr/WEB-INF/lib/5. 參照README.md在    /mnt/solr/collection1/conf/schema.xml文件的types节点中加入例如以下内容(在文件末尾且</schema>之前)    <fieldType name=&quot;textComplex&quot;>      <analyzer>      <tokenizer>      </analyzer>    </fieldType>    <fieldType name=&quot;textMaxWord&quot;>      <analyzer>          <tokenizer>      </analyzer>      </fieldType>    <fieldType name=&quot;textSimple&quot;>      <analyzer>      <tokenizer>      </analyzer>    </fieldType>6. 然后sudo mkdir /mnt/solr/dic7. service tomcat7 restart浏览器中输入127.0.0.1:8080/solr就OK了8. 使用curl命令上传数据当前文件夹下有个software.doc文件,为其创建索引curl &quot;http://localhost:8080/solr/update/extract?literal.id=doc1&commit=true&quot; -F &quot;myfile=@software.doc&quot;curl &quot;http://localhost:8080/solr/update/extract?literal.id=/mnt/WorkStation/software.doc&commit=true&quot; -F &quot;myfile=@/mnt/WorkStation/software.doc&quot;以下有/mnt/WorkStation/test.txt文件,内容为春晓春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。为其创建索引curl &quot;http://localhost:8983/solr/update/extract?literal.id=/mnt/WorkStation/test.txt&commit=true&quot; -F &quot;myfile=@/mnt/WorkStation/test.txt&quot;然后在浏览器中查询结果例如以下中文分词警告处理SolrResourceLoader Can't find (or read) directory to add to>产生该问题是要是相应的文件无法找到。处理方法:将相应的库拷贝过去sudo cp -r /mnt/solr-4.9.0/contrib /mnt/solr/sudo cp -r /mnt/solr-4.9.0/dist /mnt/solr/然后改动/mnt/WorkStation/Solr/solr/collection1/conf/schema.xml。将一下相应的路径改成你的路径(能够用绝对路径)。上一步已经将相应的文件夹复制到了/mnt/solr中,所以这里改成以下的路径<!--<lib dir=&quot;../../../contrib/extraction/lib&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../../../dist/&quot; regex=&quot;solr-cell-\d.*\.jar&quot; /><lib dir=&quot;../../../contrib/clustering/lib/&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../../../dist/&quot; regex=&quot;solr-clustering-\d.*\.jar&quot; /><lib dir=&quot;../../../contrib/langid/lib/&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../../../dist/&quot; regex=&quot;solr-langid-\d.*\.jar&quot; /><lib dir=&quot;../../../contrib/velocity/lib&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../../../dist/&quot; regex=&quot;solr-velocity-\d.*\.jar&quot; />--><lib dir=&quot;../contrib/extraction/lib&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../dist/&quot; regex=&quot;solr-cell-\d.*\.jar&quot; /><lib dir=&quot;../contrib/clustering/lib/&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../dist/&quot; regex=&quot;solr-clustering-\d.*\.jar&quot; /><lib dir=&quot;../contrib/langid/lib/&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../dist/&quot; regex=&quot;solr-langid-\d.*\.jar&quot; /><lib dir=&quot;../contrib/velocity/lib&quot; regex=&quot;.*\.jar&quot; /><lib dir=&quot;../dist/&quot; regex=&quot;solr-velocity-\d.*\.jar&quot; />错误处理在为pdf或者其它文件建立索引时可能会出现以下的问题,导致这些问题的主要原因也是相应的jar文件没有找到SimplePostTool: WARNING: Response: <?  xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
<response><lst name=&quot;error&quot;><str name=&quot;msg&quot;>lazy loading error</str><str name=&quot;trace&quot;>org.apache.solr.common.SolrException: lazy loading error at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:257) at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:239) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1962) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744)Caused by: org.apache.solr.common.SolrException: Error loading> at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:490) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:421) at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:540) at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:613) at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:248) ... 20 moreCaused by: java.lang.ClassNotFoundException: solr.extraction.ExtractingRequestHandler at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:474) ... 24 more</str><int name=&quot;code&quot;>500</int></lst></response>处理办法是将相应的jar文件复制到solr的server文件夹中sudo cp -r /mnt/solr-4.9.0/contrib/extraction/lib/* /var/lib/tomcat7/webapps/solr/WEB-INF/lib/重新启动tomcat7就OK了
页: [1]
查看完整版本: 点滴记录——Ubuntu 14.04中Solr与Tomcat整合安装