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
-
将 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(我自己的目录路径) -
将 下载的 mysql-connector-java-5.1.30.jar (通过maven自己下载) 复制到 E:\solr\solr-7.7.2\server\solr-webapp\webapp\WEB-INF\lib 目录下。
-
将 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. 对应的数据库
三、踩坑
- 数据没有导入成功?
ps:在配置data-config.xml文件中,我的
<field column="age" name="age" />
name 的value值我之前自己命名为:name= “t_age”
和数据库字段不一样,一直查询到数据。