CentOS7安装solr-7.7.3并从mysql中导入数据

系统和软件版本:

系统:centos7.9 内核:3.10.0-1160.11 X86_64

solr:solr-7.7.3.tgz

MariaDB:10.5.8-MariaDB

一、JDK环境

[root@localhost ~]# java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

二、安装solr

1、下载安装包:wget http://mirrors.hust.edu.cn/apache/lucene/solr/7.7.3/solr-7.7.3.tgz

解压:tar -zxvf solr-7.7.3.tgz -C /opt/

创建软连接:ln -sv /opt/solr-7.7.3 /opt/solr

2、修改系统的进程级别对资源的使用最大限制

[root@localhost ~]# grep -Ev "#|^$" /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

修改系统级别打开文件句柄数

[root@localhost ~]# tail -1 /etc/sysctl.conf
fs.file-max=6553560
[root@localhost ~]# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
vm.max_map_count = 262144
fs.file-max = 6553560

3、启动solr

[root@localhost ~]#solr start -force
[root@localhost ~]# netstat -tunlp|grep 8983
tcp    0      0 0.0.0.0:8983      0.0.0.0:*    LISTEN    13998/java

4、打开页面访问

http://192.168.0.52:8983/solr/#/

三、创建新的core(可以理解为一个库)

1、在/opt/solr/server/solr/目录下创建core目录,目录名自定

[root@localhost solr]# ls server/solr/new_core/ -d
server/solr/new_core/

2、把/opt/solr/server/solr/configsets/_default目录下的conf目录,复制到new_core目录下
 

[root@localhost new_core]# pwd
/opt/solr/server/solr/new_core

[root@localhost new_core]# ll conf
总用量 140
-rw-r--r-- 1 root root   111 6月  24 16:01 dataimport.properties
drwxr-xr-x 2 root root  4096 6月  22 15:10 lang
-rw-r--r-- 1 root root 55138 6月  24 15:56 managed-schema
-rw-r--r-- 1 root root   308 4月  18 2020 params.json
-rw-r--r-- 1 root root   873 11月  8 2019 protwords.txt
-rw-r--r-- 1 root root 53728 6月  24 15:53 solrconfig.xml
-rw-r--r-- 1 root root   781 11月  8 2019 stopwords.txt
-rw-r--r-- 1 root root  1124 11月  8 2019 synonyms.txt

3、在web页面添加core

添加成功后,会在new_core目录下生成core.properties文件、data目录

[root@localhost new_core]# ls
conf  core.properties  data

四、导入mysql的数据到solr

1、在mysql中创建表并插入测试数据

MariaDB [(none)]> create database authcas;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> use authcas
Database changed
MariaDB [authcas]> create table uap_tb_gmvcs_user(uid int ,user_code int,account int ,password int ,user_name varchar(20) ,gender varchar(4) ,last_login_time datetime ,update_time datetime);
Query OK, 0 rows affected (0.055 sec)
MariaDB [authcas]> insert into uap_tb_gmvcs_user values (1,001,1000,1987,"jacky","man","2021-6-24 00:00:00","2021-6-24 00:00:00");
Query OK, 1 row affected (0.002 sec)
MariaDB [authcas]> insert into uap_tb_gmvcs_user values(2,002,1001,1987,"lily","fem","2021-6-23 00:00:00","2021-6-23 00:00:00"),(3,003,1002,1987,"lucy","fem","2021-6-22 00:00:00","2021-6-22 00:00:00"),(3,003,1003,1987,"hanmeimei","fem","2021-6-22 00:00:00","2021-6-22 00:00:00"),(2,002,1001,1987,"lilei","man","2021-6-21 00:00:00","2021-6-21 00:00:00");
Query OK, 4 rows affected (0.021 sec)

2、创建data-config.xml,并添加如下内容mysql数据库的连接地址,用户、密码及提取数据的语句字段;

[root@localhost conf]# ll data-config.xml 
-rw-r--r-- 1 root root 999 6月  24 15:55 data-config.xml
[root@localhost conf]# pwd
/opt/solr/server/solr/new_core/conf
[root@localhost conf]# cat data-config.xml 
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource name="source1" type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://192.168.0.52:3306/authcas"
              user="root"
              password="finest133"
              batchSize="-1" />
    <document>
        <entity name="user" dataSource="source1"
            query="SELECT uid,user_code,account,password,user_name,gender,last_login_time,update_time FROM uap_tb_gmvcs_user">
 
            <field column='uid' name='uid' />
            <field column='user_code' name='user_code' />
            <field column='account' name='account' />
            <field column='password' name='password' />
            <field column='user_name' name='user_name' />
            <field column='gender' name='gender' />
            <field column='last_login_time' name='last_login_time' />
            <field column='update_time' name='update_time' />
        </entity>
    </document>
</dataConfig>

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

3、修改new_core目录下的managed-schema文件,把上步中data-config.xml中的field字段添加进来

    <!-- import the keyword myselt -->
    <field name="uid" type="string" indexed="true" stored="true" />
    <field name="user_code" type="string" indexed="true" stored="true" />
    <field name="account" type="string" indexed="true" stored="true" />
    <field name="password" type="string" indexed="true" stored="true" />
    <field name="user_name" type="string" indexed="true" stored="true" />
    <field name="gender" type="string" indexed="true" stored="true" />
    <field name="last_login_time" type="pdate" indexed="true" stored="true" />
    <field name="update_time" type="pdate" indexed="true" stored="true" />

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

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

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

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

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

required:是否必须

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

4、修改new_core目录下solrconfig.xml文件,把data-config.xml文件关联起来

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

5、下载数据库连接及导入的依赖jar包,下载地址:http://mvnrepository.com/

下载后放到如下目录/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/

mysql-connector-java-8.0.11.jar

solr-dataimporthandler-7.4.0.jar

solr-dataimporthandler-extras-7.4.0.jar

然后在solrconfig.xml文件中引用3个包

[root@localhost conf]# pwd
/opt/solr/server/solr/new_core/conf
[root@localhost conf]# grep "lib dir" solrconfig.xml 
              <lib dir="./lib" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-.*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

6、重启solr后进行数据导入;solr stop -all;solr start -force

7、搜索数据

原文链接:https://blog.csdn.net/u013160017/article/details/81037279

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值