• solr7.4 centos7安装197


    环境:centos7、JDK1.8、solr 自带Jetty启动

    一、安装JDK1.8环境

    1、下载JDK

    jdk-8u172-linux-x64.rpm

    下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    2、安装JDK

    rpm -ivh jdk-8u131-linux-x64.rpm

    3、配置JDK环境变量

    vim /etc/profile 

    在最后面加上下面这段

    JAVA_HOME=/usr/java/jdk1.8.0_172-amd64

    CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib

    PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

    export PATH CLASSPATH JAVA_HOME

    4、检查是否完成安装

    java -version

    javac

    二、安装Solr

    1、下载solr

    solr-7.4.0.tgz

    下载地址:http://mirrors.hust.edu.cn/apache/lucene/solr/7.4.0/solr-7.4.0.tgz

    2、创建目录

    [root@localhost /]# mkdir /chowdate

    把solr-7.4.0.tgz复制到目录 /chowdate,接着解压。

    [root@localhost /]#  tar -zxvf  solr-7.4.0.tgz

    3、启动Solr

    localhost bin]# /chowdate/solr-7.4.0/bin/solr start -forc

    4、打开页面

    http://localhost:8983/solr/#/

    5、启动到打开页面过程可能会出现的问题

    如果执行./solr start -force 命令的时候会警告你系统文件打开数的问题,可以这样解决。修改完后要重启系统。

    1. 修改 /etc/sysctl.conf 文件,在最后一行添加

    fs.file-max = 6553560

    2. 修改 /etc/security/limits.conf 文件,在最后一行添加

    1.  
      * soft nproc 65535                 //注意,前面的星号也需要
    2.  
      * hard nproc 65535
    3.  
      * soft nofile 65535
    4.  
      * hard nofile 65535

    如果出现solr安装成功,但是外界访问不到的问题,请检查防火墙是否关闭,或者8983端口是否允许开放!

    关闭防火墙的命令:

    systemctl stop firewalld.service #停止firewall

    systemctl disable firewalld.service #禁止firewall开机启动

    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    开启端口的命令:

    firewall-cmd --zone=public --add-port=8983/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

    三、添加自己的solr core

    1、创建core目录

    在/chowdate/solr-7.4.0/server/solr目录下创建new_core目录(名字自己定)

    2、复制配置文件

    复制/chowdate/solr-7.4.0/server/solr/configsets/_default下的conf文件夹到/chowdate/solr-7.4.0/server/solr/new_core/下。

    3、添加core

    在页面添加new_core(必须先做上面1、2步,不然会提示报错)。

    添加成功后/chowdate/solr-7.4.0/server/solr/new_core/下会多两个东西。

    core.properties文件、data目录

    四、导入数据库中的数据到Solr中

    1、创建data-config.xml文件

    在/chowdate/solr-7.4.0/server/solr/new_core/conf目录下创建一个文件data-config.xml,与solrconfig.xml同级

    2、修改solrconfig.xml文件

    修改/chowdate/solr-7.4.0/server/solr/new_core/conf/solrconfig.xml文件

    在<requestHandler name="/select" class="solr.SearchHandler">上放增加以下这段代码。

    1.  
      <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    2.  
         <lst name="defaults">
    3.  
         <str name="config">data-config.xml</str>
    4.  
         </lst>
    5.  
      </requestHandler>

    其中<str name="config"></str>里的内容就是我们在上一步创建的data-config.xml文件,将它们关联起来。

    3、修改data-config.xml文件

    接下来我们打开data-config.xml文件,配置相关的数据库属性,即我们要导入那张表的哪些字段,内容如下:

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <dataConfig>
    3.  
          <dataSource name="source1" type="JdbcDataSource"
    4.  
                    driver="com.mysql.jdbc.Driver"
    5.  
                    url="jdbc:mysql://10.10.9.103:3306/auth-cas"
    6.  
                    user="root"
    7.  
                    password="****"
    8.  
                    batchSize="-1" />
    9.  
          <document>
    10.  
              <entity name="user" dataSource="source1"
    11.  
                  query="SELECT uid,user_code,account,password,user_name,gender,last_login_time,update_time FROM uap_tb_gmvcs_user">
    12.  
       
    13.  
                  <field column='uid' name='uid' />
    14.  
                  <field column='user_code' name='user_code' />
    15.  
                  <field column='account' name='account' />
    16.  
                  <field column='password' name='password' />
    17.  
                  <field column='user_name' name='user_name' />
    18.  
                  <field column='gender' name='gender' />
    19.  
                  <field column='last_login_time' name='last_login_time' />
    20.  
                  <field column='update_time' name='update_time' />
    21.  
              </entity>
    22.  
          </document>
    23.  
      </dataConfig>

    dataSource 中,url是你要访问的数据库路径,我这里指定到我的auth-cas 数据库。user是用户名,password是你的数据库密码。

    query是一个sql语句,你需要导入哪张表的哪些字段,查就行了。然后<field>标签中的column属性是你SQL语句中查询的字段,跟数据库中对应;name属性是你给它起的一个别名,应该是必须指定的(本人没试过不指定的结果),至于name属性是干嘛的,继续往下操作,自然会明白。有多个查询字段就需要有多个<field>标签,每一个<field>标签对应一个字段。

    document配置数据库查询语句与managed_schema域的对应关系。目的是,在core导入数据的时候,会先通过该配置信息链接到数据库通过查询语句把数据查询出来,通过数据库字段与managed_schema域关联关系创建索引

    4、修改managed-schema文件

    修改/chowdate/solr-7.4.0/server/solr/new_core/conf/managed-schema文件,将刚才在data-config.xml中配置的<field>标签添加进来。

    1.  
      <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    2.  
      <!-- docValues are enabled by default for long type so we don't need to index the version field -->
    3.  
      <field name="_version_" type="plong" indexed="false" stored="false"/>
    4.  
      <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
    5.  
      <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
    6.  
      <!-- 上面是原有的的字段 -->
    7.  
       
    8.  
      <!-- 自己的导入的字段 -->
    9.  
      <field name="uid" type="string" indexed="true" stored="true" />
    10.  
      <field name="user_code" type="string" indexed="true" stored="true" />
    11.  
      <field name="account" type="string" indexed="true" stored="true" />
    12.  
      <field name="password" type="string" indexed="true" stored="true" />
    13.  
      <field name="user_name" type="string" indexed="true" stored="true" />
    14.  
      <field name="gender" type="string" indexed="true" stored="true" />
    15.  
      <field name="last_login_time" type="pdate" indexed="true" stored="true" />
    16.  
      <field name="update_time" type="pdate" indexed="true" stored="true" />

    这里<field>里的name属性值,就是我们刚才在data-config.xml中<field>标签的name属性值,这是name属性的第一个用途,关联起来。

    name:是这个域的名称,在整个managed_schema文件里面需要唯一,不能重复,这里定义成跟数据库表字段的名称,方便使用。当然,也可以定义成其他名字。

    type:是表示这个字段的类型是什么,string是字符串类型,int是整形数据类型,date是时间类型,相当于数据库里面的timestamp。

    indexed:表示是否索引,索引的话就能查询到,否则,搜索的时候,不会出现。

    stored:表示是否存储到索引库里面。

    required:是否必须

    multiValued:是否多值,比如商品信息中,一个商品有多张图片,一个Field想存储多个值的话,必须将multiValued设置为true

    5、下载连接数据库和导入数据的jar包

    现在涉及到数据库了,肯定需要依赖一些jar包,下载三个jar包 下载地址:http://mvnrepository.com/

    mysql-connector-java-8.0.11.jar

    solr-dataimporthandler-7.4.0.jar

    solr-dataimporthandler-extras-7.4.0.jar

    三个jar包 放到/chowdate/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib 目录下

    然后打开/chowdate/solr-7.4.0/server/solr/new_core/conf/solrconfig.xml,引用上面提到的jar包,如下。

    1.  
      <!-- mysql导入增加的包开始--> 
    2.  
      <lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-.*.jar" /> 
    3.  
      <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*.jar" /> 
    4.  
      <!-- mysql导入增加的包结束-->

    关闭然后重启  ./bin/solr stop -all       ./bin/solr  start  -force   

    6、导入数据

    再次访问我们刚才的页面,在左侧找到我们部署好的new_core工程,点击Dataimport,再选择full-import(全部导入),点击Execute,出现下面的页面,证明这张表的数据已经导入进来了。

    6、查找数据

  • 相关阅读:
    JavaScript 以POST方式打开新页面
    C# 实现守护进程
    SQL Server 之 使用RowCount遍历表数据
    SQL Server 之 存储过程调用C#编写的dll文件
    C# 多线程学习整理
    java 学习的有用链接
    git 操作命令
    关于各种Map的那些事
    JAVA 反射机制详解
    深入理解java:注解(Anotation)自定义注解
  • 原文地址:https://www.cnblogs.com/Ai-Hen-Jiao-zhi/p/9602135.html
Copyright © 2020-2023  润新知