• Centos7下单机部署Solr7.3


    Centos7下单机部署Solr7.3

     
           本章重点介绍CentOS7 下部署Solr7 ,添加核心Core配置,Dataimport导入,中文分词的相关操作。
    一、准备工作
        演示环境是在虚拟机下安装的CentOS7、java JDK8、apache-tomcat-8.5.29。
        在CentOS7 下安装jdk8以及tomcat8.5 的安装方法可以搜索相关教程,这里不再赘述。
        注意:solr6.0以上,官方建议使用jdk8,tomcat8。
    二、下载 solr-7.3.0
        官网 http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.0 找合适的镜像下载solr ,并上传到虚拟机。
        也可以使用wget 直接下载 
    复制代码
    #cd /usr/local
    # wget http://mirrors.shu.edu.cn/apache/lucene/solr/7.3.0/solr-7.3.0.zip
      
      看到如上图所示
      等待几分钟,下载完成后在当前目录(/usr/local)下解压
    #unzip solr-7.3.0.zip
    #cd solr-7.3.0
    复制代码
        注:若提示unzip command not found ,请先安装zip、unzip命令,再解压。
    #yum install -y unzip zip  
    三、与tomcat结合部署Solr7
      1.进入solr7解压后的目录后,复制并重命名solr-7.3.0目录里的server/solr-webapp/webapp文件夹到tomcat的webapps目录为solr7。
        演示环境的tomcat 安装目录为/usr/local/java/apache-tomcat-8.5.29
    复制代码
    # cd solr-7.3.0
    #  cp -r server/solr-webapp/webapp  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7 
      
    复制代码
          
     2.将需要的jar包,复制到部署的solr7 的WEB-INF/lib/ 下
        将server/lib/ext/下的所有jar复制到 /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/下
    复制代码
    # cd server/lib/ext/
    #  ll
    #  cp  *  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/
      
    复制代码
       将server/lib/metrics* 开头的5个jar复制到 /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/下
    复制代码
    # cd ..
    # ll
    # cp metrics-*  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/
      
    复制代码
    3.复制log4j配置文件
      把server/resources/目录下的log4j.properties,复制到刚才部署的solr7的WEB-INF/,要创建一个classes的目录
    # mkdir /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/classes
    # cp ../resources/log4j.properties /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/classes
         
    4.创建solr home
      复制并重命名solr-7.3.0/servier/solr为/usr/local/solr7home
    复制代码
    # cd  ../../
    # cp -r server/solr  /usr/local/solr7home
    # ls /usr/local/solr7home
      
    复制代码
    5.将tomcat/webapps下的solr7与新建的solr7home关联
      a.需要修改tomcat里solr7/WEB-INF/web.xml文件
    # vim  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/web.xml
     
      b.找到solr/home的env-entry(如下图所示),打开注释,修改env-entry-value值为新建的solr7home
         
     c.然后到最下方,将这一段注释掉,不然会报403错误,完成后保存退出
         
    6.启动tomcat
    # /usr/local/java/apache-tomcat-8.5.29/bin/start.sh
      在电脑上访问下服务器的solr服务,演示环境的ip为192.168.1.220
      访问http://192.168.1.220:8080/solr7/index.html,出现如下页面表示solr服务搭建好了。
         
    四、添加solr核心Core配置
        在管理页面,点击Core Admin,选择AddCore,添加核心
             
         name:自定义的名字,建议和instanceDir保持一致
         instanceDir: solrhome目录下的实例类目
         dataDir:默认填data即可
         config:指定配置文件,new_core/conf/solrconfig.xml
         schema:指定schema.xml文件,new_core/conf/schema文件(实际上是managed-schema文件)
        注意:红色框内的内容,instanceDir and dataDir need to exist before you can create the core
        要求在创建solr核心时,instanceDir实例目录在sold home 中存在
        如果instanceDir实例目录不存在,点击添加会有如下提示,但会在solr/home中多一个instanceDir实例目录。
        
    a.将solr7home/configsets/sample_techproducts_configs/目录下的conf 拷贝到 mycore 目录下,目录结构:mycore/conf/
    b.将contrib目录,dist目录拷贝到solrhome目录中
    复制代码
    # cd /usr/local/solr7home/
    # mv new_core micro
    # ll
    # cp -r configsets/sample_techproducts_configs/conf  mycore/
    # ll
    # cp -r /usr/local/solr-7.3.0/contrib ./
    # cp -r /usr/loacl/solr-7.3.0/dist ./
    # ll
    
    
    
    复制代码
    c.修改mycore/config/solrconfig.xml
      将文件中<lib dir="${solr.install.dir:../../../..}.." 替换为 <lib dir=“/usr/local/solr7home/…."
    # vim mycore/config/solrconfig.xml
      
      替换后结果如下:
           
      d.刷新页面,点击Core Admin 添加Core,instanceDir就是刚才配置的目录mycore,出现下图所示表示solr核心创建成功
          
    五、Dataimport(导入数据)
         点击Dataimport 时,出现 The solrconfig.xml file for this index does not have an operational DataImportHandler defined!
         解决如下:
      a.复制sorl7home/dist/solr-dataimporthandler*.jar和mysql的jdbc驱动mysql-connector-java-5.1.42.jar 到tomcat的webapps/solr7/WEB-INF/lib/下
    复制代码
    # ll dist/
    # cp -r dist/solr-dataimporthandler-*  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/
    # vim mycore/config/solrconfig.xml
      
    复制代码
     b.在mycore/config/solrconfig.xml添加DataImportHandler
         
     c.在mycore/conf/ 目录下创建data-config.xml(数据库配置和对应的字段)
         
       目录结构如下:
         
     d.重启tomcat,再次访问,如果出现下图内容则说明配置成功
          
      e.添加数据库中对应的Field(注意solr已经存在的field 不需要添加 ,具体可在managed-schema中查看已有的field),
         然后数据才能完整的导入。否则导入数据进行query 查询的时候只有id ,_version_两个字段。
           
     f. 数据导入
       Command:full_import:全量导入;delta_import:增量导入。
       Clean:在索引开始构建之前是否删除之前的索引,默认为true
       Commit:在索引完成之后是否提交。默认为true
       Execute:执行导入
       Refresh Status:刷新后才能看到数据发生了变化(点一次刷新一次)
       选择 全量导入,Execute执行,Refresh Status刷新查看状态,其他都选默认即可。
    六、中文分词
       1.将solr 自带的中文分词jar复制到,tomcat的webapps/solr7/WEB-INF/lib/ 下managed-schema
    # cd  /usr/local/solr7home/   
    # cp contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.3.0.jar  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib
    # vim mycore/confg/managed-schema
      
      2.在mycore/confg/managed-schema 添加如下内容
        <!--text  Chinese -->
        <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
          <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
          </analyzer>
          <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
          </analyzer>
        </fieldType>
         
       3.重启tomcat
          
     
     
     
    出现问题解决
    1、vim /etc/profile添加tomcat的bin目录

     source /etc/profile

    2、

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【皮皮虾】!

    联系或打赏博主【皮皮虾】!

    可以邮件形式询问:【1260866273@qq.com】!

  • 相关阅读:
    Jupsh_flutter Android 收不到消息 / 排查不出请根据第 9 点说明提供信息
    angular表单 Dom获取表单值以及双向数据绑定
    angular中的组件以及组件中的模板合成
    Flutter开发的app进行设备判断是Ios还是android
    Java的封装
    GCD编程 之 略微提高篇
    多线程基础(六)GCD基础
    我遇到的CocoaPods的问题(也许后期会解决,持续更新)
    iOS之通过PaintCode快速实现交互动画的最方便方法 未解问题
    多线程基础(五)NSThread线程通信
  • 原文地址:https://www.cnblogs.com/rppx/p/14299134.html
Copyright © 2020-2023  润新知