solr 连接MySQL数据库

一、solr 搜索服务器

1.solr 概述

      Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。Solr是企业级的,快速的和高度可扩展的。使用Solr构建的应用程序非常复杂,可提供高性能。

2.solr 下载安装

solr 官网地址 : https://lucene.apache.org/solr/
在这里插入图片描述
在这里插入图片描述

3. solr 配置准备

首选创建一个Add Core
命令: window 系统中cmd ,在solr 的bin 目录下

cd E:\solr\solr-7.7.2\bin
//test 是我的文件夹名
solr create -c test
  1. 将 E:\solr\solr-7.7.2\dist(我自己的目录路径)中的jar : solr-dataimporthandler-7.7.2.jar 和 solr-dataimporthandler-extras-7.7.2.jar
    复制到 E:\solr\solr-7.7.2\server\solr-webapp\webapp\WEB-INF\lib(我自己的目录路径)

  2. 将 下载的 mysql-connector-java-5.1.30.jar (通过maven自己下载) 复制到 E:\solr\solr-7.7.2\server\solr-webapp\webapp\WEB-INF\lib 目录下。

  3. 将 E:\solr\solr-7.7.2\server\solr\test\conf 目录下是 managed-schema文件名 修改成 schema.xml

二、连接MySQL数据库

1.新增data-config.xml文件

data-config.xml 是对数据库表的配置文件
我 的data-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <!-- 数据库信息 -->
    <dataSource type="JdbcDataSource" 
        driver="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://127.0.0.1:3306/test" 
        user="root" password="123456"/>
    <document>
         <entity name="users" pk="id"  
		        query="select * from users"
                deltaQuery="select * from users where name > '${dataimporter.last_index_time}'">
                <!-- 对应数据库表的字段 --> 
            <field column="name" name="name" />
            <field column="age" name="age" />
        </entity>
    </document>
</dataConfig>

2.修改solrconfig.xml

在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>

3.修改schema.xml

添加内容:

<field name="name" type="string" indexed="true" required="false" stored="true"/> 
<field name="age" type="string" indexed="true" required="true" stored="true"/>

4.重启并查看数据

停止solr : solr stop _all
启动solr :solr start

1.导入数据
在这里插入图片描述
2.结果
在这里插入图片描述
3. 对应的数据库
在这里插入图片描述

三、踩坑

  1. 数据没有导入成功?
    ps:在配置data-config.xml文件中,我的
<field column="age" name="age" />

name 的value值我之前自己命名为:name= “t_age”
和数据库字段不一样,一直查询到数据。

发布了16 篇原创文章 · 获赞 3 · 访问量 525

猜你喜欢

转载自blog.csdn.net/outdata/article/details/103787423