转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965981

1. 安装jdk,tomcat
    sudo apt-get install tomcat7 openjdk-7-jdk openjdk-7-jre

2. 到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+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="1.0" encoding="UTF-8"?

>

    <Context docBase="/var/lib/tomcat7/webapps/solr.war" debug="0" crossContext="true"> 
        <Environment name="solr/home" type="java.lang.String" value="/mnt/solr/data" override="true" />
    </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.zip
2. sudo mv mmseg4j-solr-2.2.0-with-mmseg4j-core.zip /mnt/
3. sudo unzip mmseg4j-solr-2.2.0-with-mmseg4j-core.zip
4. 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="textComplex" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicdata-path="dic"/>
      </analyzer>
    </fieldType>
    <fieldType name="textMaxWord" class="solr.TextField" >
        <analyzer>
          <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicdata-path="dic"/>
        </analyzer>
      </fieldType>
    <fieldType name="textSimple" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicdata-path="dic"/>
      </analyzer>
    </fieldType>

6. 然后sudo mkdir /mnt/solr/dic
7. service tomcat7 restart
浏览器中输入127.0.0.1:8080/solr就OK了

8. 使用curl命令上传数据
当前文件夹下有个software.doc文件,为其创建索引
curl "http://localhost:8080/solr/update/extract?literal.id=doc1&commit=true" -F "myfile=@software.doc"
curl "http://localhost:8080/solr/update/extract?literal.id=/mnt/WorkStation/software.doc&commit=true" -F "myfile=@/mnt/WorkStation/software.doc"

以下有/mnt/WorkStation/test.txt文件,内容为
春晓
春眠不觉晓,处处闻啼鸟。
夜来风雨声,花落知多少。

为其创建索引
curl "http://localhost:8983/solr/update/extract?literal.id=/mnt/WorkStation/test.txt&commit=true" -F "myfile=@/mnt/WorkStation/test.txt"
然后在浏览器中查询结果例如以下


中文分词


警告处理
SolrResourceLoader Can't find (or read) directory to add to classloader: ../../../contrib/extraction/lib
产生该问题是要是相应的文件无法找到。处理方法:
将相应的库拷贝过去
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="../../../contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
-->

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

  <lib dir="../contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="../dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="../contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="../dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="../contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="../dist/" regex="solr-velocity-\d.*\.jar" />

错误处理
在为pdf或者其它文件建立索引时可能会出现以下的问题,导致这些问题的主要原因也是相应的jar文件没有找到
SimplePostTool: WARNING: Response: <?

xml version="1.0" encoding="UTF-8"?>

<response>
<lst name="error"><str name="msg">lazy loading error</str><str name="trace">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 class 'solr.extraction.ExtractingRequestHandler'
 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 more
Caused 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="code">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了





点滴记录——Ubuntu 14.04中Solr与Tomcat整合安装的更多相关文章

  1. zhuan:点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题

    在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重 ...

  2. 点滴记录——Ubuntu 14.04中Chrome浏览器标题栏出现中文乱码

    今天不知道在系统里装的哪个软件与Chrome浏览器所用的字体向冲突了,导致标题栏显示的中文都变成了乱码,其次收藏栏中的中文也变成了乱码.导致原有的收藏内容都无法辨认了.在网上搜索了一下,也有人遇到了相 ...

  3. 点滴记录——在Ubuntu 14.04中使SublimeText 3支持中文输入法

    在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现非常多人遇到了相同的问题,可是解决的方法大该就仅仅有一个.以下依据自身的安装及解决的方法 ...

  4. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  5. Ubuntu 14.04中安装最新版Eclipse

    Ubuntu 14.04中安装最新版Eclipse 来源:Linux社区    作者:Linux 1.安装OpenJDK Java 7 如果你的系统中没有安装Java,我们需要按照如下步骤事先安装好 ...

  6. Ubuntu 14.04中gedit打开文件出现中文乱码问题

    http://blog.csdn.net/cywosp/article/details/32325449/ 在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时 ...

  7. 如何在Ubuntu 14.04中安装最新版Eclipse

    想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...

  8. 如何在Ubuntu 14.04中使用Samba共享文件

    Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...

  9. 怎样在Ubuntu 14.04中安装Java(转)

    想知道如何在Ubuntu 14.04中安装Java?安装Java肯定是安装Ubuntu 14.04后首先要做的几件事情之一(见http://www.linuxidc.com/Linux/2014-04 ...

随机推荐

  1. SQL Server连接不上本地服务器

    昨天星期一,到公司,如常打开电脑后,上个厕所,吃个早餐,电脑才完全醒来.打开项目后台,发现登不上,用户名或密码错误,认真输入几遍,还是错误,打开本地数据库,sql server连接不上,提示错误: 我 ...

  2. tab bar controller

    下面记一下怎样通过代码的方式为选项卡添加视图. 1.创建一个基于Empty Application的项目 2.创建两个新类,基类选择UIViewController,勾选With XIB for us ...

  3. vector性能调优之resize与reserve

    vector的resize与reserve reserve()函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size) resize() 函数( void resi ...

  4. Day01:我的Python学习之路

    1.Python是什么语言? Python是动态的解释性的强类型定义的语言. (1)动态语言与静态语言 ①静态语言:在编译期间就会去做数据类型检查的语言,如C,C++. ②动态语言:在运行期间才会去做 ...

  5. Gameia

    F - Gameia HDU - 6105   Alice and Bob are playing a game called 'Gameia ? Gameia !'. The game goes l ...

  6. 提高CPU使用率

    某些特殊时候,需要提升下cpu的利用率,此时……………………需要一个极其简单的脚本来完成! #!/bin/bash while (true);do { for i in $(seq 100000 10 ...

  7. linux 如何查看硬盘大小,内存大小等系统信息及硬件信息

    一.linux CPU大小[root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpuin ...

  8. 配置github SSH公钥登录

    git的安装见https://www.cnblogs.com/liliyang/p/9829931.html 配置git使用ssh密钥 git支持https和git两种传输协议,github分享链接时 ...

  9. 第十三章:MFC库与Windows程序开发概述

    主要内容: 1.Windows程序的基本结构 2.MFC库简介 3.使用Visual C++开发Windows程序 具体内容略

  10. HDU 6216 A Cubic number and A Cubic Number(数学/二分查找)

    题意: 给定一个素数p(p <= 1e12),问是否存在一对立方差等于p. 分析: 根据平方差公式: 因为p是一个素数, 所以只能拆分成 1*p, 所以 a-b = 1. 然后代入a = b + ...