zoukankan      html  css  js  c++  java
  • Solr安装(1)

    Solr是一个基于Lucene java库的企业级搜索服务器,本文记录了solr的安装过程,版本为最新的1.4.1。

    1) 下载

        从solr的官网http://lucene.apache.org/solr/找到最新的版本1.4.1.

        解开下载的apache-solr-1.4.1.zip或apache-solr-1.4.1.tgz文件到apache-solr-1.4.1目录.


    2) 简易安装

        solr的发布包中包含一些example,为了方便的运行这些example,solr的发布包中还额外的附带了jetty以便我们可以快速的搭建一个可运行的solr实例。

        因为一切都是现成的,因此过程就很简单了, 参考solr的教程(http://lucene.apache.org/solr/tutorial.html), 步骤如下:

    1. cd apache-solr-1.4.1/example
    2. java -jar start.jar
    3. 打开浏览器访问 access http://localhost:8983/solr/admin/ 

         如果可以看到solr的搜索页面,说明solr正常运行。足够简单吧。--到这里只是最简单的Solr的安装,先体验一把。

    3) 标准安装

        上面的简易安装方式终究不能运用于正式场合,因此还是需要标准安装方式。

        solr的安装其实需要做的事情不多,因为本身就只需要运行起来是一个打包好的war包,只要配置OK就可以运行于各个web container。

        通用的solr安装步骤如下:

    1. 准备好web container 如tomcat, jetty, resin等--这里使用的是Tomcat6.0
    注意安装前先停止web container服务器。

    2. 从上面解压好的solr发布包中找到example\solr目录
    这个目录可以用来作为配置solr的模板使用
    将example\solr目录复制到其他路径,如C:\soft\solr,以后这个目录就将作为solr home使用

    注意有个文件需要修改一下,$SOLR_HOME/conf/solrconfig.xml,找到dataDir设置:

    默认为<dataDir>${solr.data.dir:./solr}</dataDir>,用的是相对路径,这个需要修改为完整路径:

    <dataDir>${solr.data.dir:C:\soft\solr\data}</dataDir>

    3. 从上面解压好的solr发布包中找到solr的war包
    apache-solr-1.4.1/dist/apache-solr-1.4.1.war(注意:这里的war读取路径)
    可以将这个war复制到solr home目录下

    4. 启动web container
    启动时有两个东西需要做到:

    4.1. 要运行的solr的webapp
    可以通过直接复制solr的war包到webapp目录,也可以通过其他方式指定这个war的路径
    总之是让web container启动solr这个应用。

    4.2. 要指明solr home(这里具体的操作方法参见下面4)部分)
    方式有3种:
    1. 设置java 的系统参数solr.solr.home(应该是solr.home,但是官网就是写成solr.solr.home)
    如 -Dsolr.solr.home=C:\soft\solr
    2. 设置JNDI lookup "java:comp/env/solr/home"
    3. 默认为./solr目录,即当前工作路径下的solr
    由于工作路径容易造成问题,因此一般不推荐这种方式。


    5. 访问solr的管理页面来验证安装是否完成

        上述步骤中其他步骤都简单,只有步骤4需要额外注意。虽然原则上都是这些内容,但是具体到不同的web container会有不同的方法。
     
        下面以tomcat和jetty为例,假定步骤1,2,3都已经完成。

    4) 安装于tomcat

        以下内容参考官网文档 http://wiki.apache.org/solr/SolrTomcat.  

        1. 修改tomcat的server.xml文件

    主要是修改监听端口,另外需要设置URIEncoding为UTF-8。

        <Connector port="8983" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8" /> (说明:这里一定要指定是UTF-8格式,否则中文分词的时候会出现乱码)

        2. 增加tomcat\conf\Catalina\localhost\solr.xml文件

    内容为:

    <?xml version="1.0" encoding="utf-8"?>
    <Context docBase="C:\soft\solr\apache-solr-1.4.1.war" debug="0" crossContext="true">
      <Environment name="solr/home" type="java.lang.String" value="C:\soft\solr" override="true"/>
    </Context>

        步骤4就完成了,使用的tomcat版本为6.28。这里要注意修改对应的$Solr_home的路径。

      

    安装完毕,可以通过http://localhost: 8983/solr/admin来访问了



    5) 安装于jetty(以下斜体部分未实验)

        以下内容参考官网文档 http://wiki.apache.org/solr/SolrJetty, 但是坦白说,这个文档的内容有点凌乱。

        jetty安装完成后,只需一个步骤,增加文件jetty\contexts\solr.xml,内容如下:


    <?xml version="1.0"  encoding="ISO-8859-1"?>
    <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

    <Configure class="org.mortbay.jetty.webapp.WebAppContext">
      <Set name="contextPath">/solr</Set>
      <Set name="war">C:\soft\solr\apache-solr-1.4.1.war</Set>

      <Set name="extractWAR">true</Set>
      <Set name="copyWebDir">false</Set>
      <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>

      <Array id="plusConfig" type="java.lang.String">
        <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
        <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
        <Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
        <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
        <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
      </Array>

      <Set name="ConfigurationClasses"><Ref id="plusConfig"/></Set>

      <New class="org.mortbay.jetty.plus.naming.EnvEntry">
        <Arg>/solr/home</Arg>
        <Arg type="java.lang.String">C:\soft\solr</Arg>
        <Arg type="java.lang.Boolean">true</Arg>
      </New>

    </Configure>

        主要是指定contextPath/war, 另外设置"/solr/home",注意jetty下是"/solr/home",不是"solr/home"。这里有点奇怪。

        时间有限,其他webcontainer就不一一测试了,相信原理都是一样的。
  • 相关阅读:
    Spring中的Type学习
    Spring发布监听机制
    BeanFactory父子容器的知识
    Spring中自动创建代理器
    ProxyConfig属性详解
    BeanFactoryAdvisorRetrievalHelper:从Bean工厂检索出Advisor们
    代理机制
    Spring AOP组件
    @Value的使用
    BeanPostProcessor原理--使用讲解
  • 原文地址:https://www.cnblogs.com/SingleCat/p/1802164.html
Copyright © 2011-2022 走看看