zoukankan      html  css  js  c++  java
  • Linux安装单机solr

    前言:

    1 solr是一个severlet,只处理数据

    2 tomcat是运行serverlet的环境,也就是个serverlet容器

    大概就这么个意思吧:一个访问请求过来,会先到达tomcat,然后tomcat将请求变为一个request object,然后solr会用自己的搜索引擎处理好这个请求,返回数据。

    3 solr是基于lucene java库的企业级搜索服务器。包含了XML/HTTP, JSON API, 高亮查询结果, faceted search, 缓存, 复制, web管理界面。下面是和lucene的几点区别。

    lucene本质是一个搜索库,不是独立的应用程序;solr是独立的应用程序

    lucene专注于搜索底层的建设;solr专注于企业应用

    lucene不负责职称搜索服务所必须的管理;solr负责


    这是主要的安装过程了,首先得感谢下同事shj的帮助,O(∩_∩)O~

    另:文中可能有我理解错误的地方,还请不吝指教,谢谢!

    操作系统:64位 CentOS 5.5 (同事用的ubuntu也很OK)

    1 JDK安装

    这个没什么好说的,到官网上下载JDK并装好,并配置好JAVA_HOME、CLASSPATH等。目前我用的是jdk-8u45-linux-x64.tar.gz,安装好后配置的profile信息如下:

    # vim /etc/profile
    JAVA_HOME=/usr/local/jdk 
    CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
    PATH=$PATH:$JAVA_HOME/bin

    2 tomcat安装

    官网上下载个最新版本就好,目前最新版本是8.0.21,下面有很多选择,选择一个二进制包Core下面的tar.gz下载。

    # tar -zxv -f apache-tomcat-8.0.21.tar.gz -C /usr/local
    # mv /usr/local/apache-tomcat-8.0.21 /usr/local/tomcat
    # cd /usr/local/tomcat/bin
    # chmod +x *.sh

    可以将tomcat/bin目录加到环境变量PATH中。

    # vim /etc/profile
    JAVA_HOME=/usr/local/jdk 
    CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
    TOMCAT_HOME=/usr/local/tomcat
    PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin

    之后可以启动tomcat,看是否已经安装好

    # catalina.sh start  // 启动tomcat,后台运行tomcat
    # catalina.sh stop   // 停止tomcat
    # catalina.sh run    // 启动tomcat,前台运行tomcat,可以直接使用 ctrl + c 终止
    
    // 也可以使用下面的脚本来运行和终止tomcat
    # startup.sh        // 启动tomcat
    # shutdown.sh       // 停止tomcat

    可以使用本地ip:8080或者localhost:8080查看是否已经成功安装好tomcat,如果看到猫了,那么就OK了。

    如果没有的话,可以到tomcat/logs/catalina.2015-04-28.log或者使用catalina.sh run查看相关的报错信息。

    3 solr安装

    同样,在官网上找到最新的版本下载一个,目前最新的版本是5.1.0,我下载了solr-5.1.0-src.tgz。把下载好的tgz文件解压:

    # tar -zxv -f solr-5.1.0.tgz

    解压后找到需要的一个solr.war的包,这个其实就相当于是solr的一个java压缩包,当放到tomcat的webapps下之后运行tomcat就会自动解压出一个同名文件夹,也就是我们要的serverlet,里面有部分依赖包还需要从solr-5.1.0.tgz这个压缩包中得到。

    每个版本的war包的放置路径不同,所以可以先找到,然后移到tomcat/webapps下:

    # cd /usr/local/src/solr-5.1.0
    # find -name *.war
    ./server/webapps/solr.war
    # cp ./server/webapps/solr.war /usr/local/tomcat/webapps/

    然后运行一下tomcat,就会在tomcat/webapps路径下看到多了一个solr的文件夹。停止tomcat后,删除solr.war,否则每次启动tomcat都会解压一次这个solr.war。

    a. 更改主配置文件

    在tomcat/webapps/solr/WEB-INF路径中放置了关于solr这个serverlet的所有配置文件,进入到里面,可以看到主配置文件web.xml,需要配置一下solr/home的路径,这个路径是以后你要使用的索引的路径,可以在指定的路径下创建一个文件夹,专门存放,在此就在/usr/local下创建solr文件夹存放。

    # mkdir /usr/local/solr
    # cd /usr/local/tomcat/webapps/solr/WEB-INF
    # vim web.xml
    ....
    <env-entry>
        <env-entry-name>sold/home</env-entry-name>
        <env-entry-value>/usr/local/solr</env-entry-value>
        <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    ....

    中间红色粗体的地方就是需要修改的地方,这一段在原来的配置文件中其实就是存在的,只不过是注释掉的。

    b. 添加依赖包

    有一部分solr依赖的jar包并没有直接在tomcat/webapps/solr/WEB-INF/lib中,需要从solr-5.1.0那个包里面拷贝过来。

    # cd /usr/local/src/solr-5.1.0
    //ext文件下的都是必要的依赖包
    # find -name ext
    ./server/lib/ext
    # ls ./server/lib/ext
    jcl-over-slf4j-1.7.7.jar  jul-to-slf4j-1.7.7.jar  log4j-1.2.17.jar  slf4j-api-1.7.7.jar  slf4j-log4j12-1.7.7.jar
    # cp ./server/lib/ext/* /usr/local/tomcat/webapps/solr/WEB-INF/lib

    在我本机安装完成启动tomcat时,报了一个关于dataimportHandler的错误,所以现在就把dataimport的jar包放到WEB-INF/lib中,这个可能是solr自带的example中使用的

    # find -name *dataimport*
    # cp dist/solr-dataimporthandler-5.1.0.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/
    # cp dist/solr-dataimporthandler-extras-5.1.0.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/

    c. 日志

    当前使用的solr版本本身并没有在WEB-INF下面提供类存放路径,创建好后,可以添加一个日志配置文件到该路径下:

    # cd /usr/local/tomcat/webapps/solr/WEB-INF/ 
    # lib  weblogic.xml  web.xml 
    # mkdir classes 

    然后去solr-5.1.0中找一个名字叫log4j的文件,用的是找到的第一个,放到classes路径下:

    # cd /usr/local/src/solr-5.1.0
    # find -name *log4j*
    # cp server/resources/log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes/

    本来是随便找了一个,用的是example中的一个叫log4j.properties的,结果报一个路径相关的错误,打开这个文件,看到最上面两行有配置一个路径信息,改成一个存在的路径应该也是OK吧,没实测。

    d. 索引存放

    solr搜索引擎所使用的索引文件最好单独放在一个路径下,这个就是在这段第一小节:<a. 更改主配置文件>中配置的solr/home的路径,本例中就是/usr/local/solr。

    在solr-5.1.0/example/example-DIH/solr中就有几个Core,在solr中每个索引都是一个core(我理解这就是个称呼而已),每个core下面都会有自己的配置文件(在conf路径下)和一个core.properties。把solr-5.1.0/example/example-DIH/solr下的所有文件都拷贝到/usr/local/solr中。

    # cp -r /usr/local/src/solr-5.1.0/example/example-DIH/solr/* /usr/local/solr/

    顺便说几句:

    conf路径下主要需要配置 schema.xml 和 solrconfig.xml。

    schema.xml 里面主要配置索引的各个字段

    solrconfig.xml 主要配置各个RequestHandler

    到此就算完成了单机solr的安装,运行tomcat,然后用浏览器打开 本机ip:8080/solr 或者 localhost:8080:/solr ,就可以看见solr的web界面了:

     可以看到左边Core Selector中就是/usr/local/solr那几个Core。


    后话:如果你觉得对你有帮助,烦请点点右下角的推荐哟~本姑娘在此表示感谢~O(∩_∩)O谢谢~

     

  • 相关阅读:
    调试技术 Orisun 博客园
    Core Dump和/proc调试 Orisun 博客园
    再谈select, iocp, epoll,kqueue及各种I/O复用机制 Shallway 博客频道 CSDN.NET
    基础很重要
    Speech and Language Processing (2nd Ed.): Updates
    CS 288: Statistical Natural Language Processing
    对C++中string类型的总结
    HTTP代理实现请求报文的拦截与篡改1 jivi 博客园
    学习优秀源码 Orisun 博客园
    分享:苹果老员工可享两年离岗留职待遇
  • 原文地址:https://www.cnblogs.com/carrotH/p/4463698.html
Copyright © 2011-2022 走看看