折腾了一下午终于成功了!先放一张成功图:

成功把mysql的数据添加进去了,我这里是整合了tomcat9,整合步骤挺麻烦的,百度一大堆!

这里主要介绍批量导入数据,这里有些坑,所以记录一下:

步骤:

第一: 引入需要的jar包

我这里把home目录放外面了,所以核心配置文件引入jar包需要改一下:

在下面这个目录下复制进去需要的jar包,mysql自己找,下面两个可以在solr安装包的dist目录中找到,我这里是7.3.版本:

然后在需要加的core的solrconfig,xml添加引用

第二: 添加配置文件

在solrconfig.xml中需要引入:

<!-- 配置批量导入处理器 -->
<admin>
<defaultQuery>*:*</defaultQuery>
</admin>
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str> <!-- mysql数据配置映射文件 -->
</lst>
</requestHandler>

  同级目录下新建data-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<!-- 配置数据源 -->
<!-- url中最后要加上serverTimezone=UTC否则发送请求的时候会乱码 -->
<dataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solr?characterEncoding=utf-8&serverTimezone=UTC"
user="root"
password="799827577"/>
<document>
<!-- query中写SQL语句 -->
<entity name="products" query="select pid,name,catalog_name,picture,description,price from products">
<!-- column对应数据库中的列名,name为对应的域名(在scheme中没有的话需要配置,即设置业务系统域),
这是一个映射关系 -->
<field column="pid" name="id"/>
<field column="name" name="product_name"/>
<field column="price" name="product_price"/>
<field column="catalog_name" name="product_catalog_name"/>
<field column="picture" name="product_picture"/>
<field column="description" name="product_description"/>
</entity>
</document>
</dataConfig>

  

第三: 设置业务域

这里是mysql的表结构

然后最后是对应的配置,在core下面的从目录中:

虽然现在支持API添加,但是我还是觉得麻烦,直接手动添加重启,毕竟不是企业

<!-- 配置producta表业务域 -->
<field name="product_name" type="text_ik" indexed="true" stored="true"/>
<field name="product_price" type="pfloat" indexed="true" stored="true"/>
<field name="product_catalog_name" type="string" indexed="true" stored="true"/>
<field name="product_description" type="text_ik" indexed="true" stored="false"/>
<field name="product_picture" type="string" indexed="false" stored="true"/> <!-- 配置拷贝域,商品名称和描述组合查询 -->
<field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="product_name" dest="product_keywords"/>
<copyField source="product_description" dest="product_keywords"/>

  

data-config.xml配置注意事项:

数据库连接url后面要配置serverTimezone,否则会报错,日志中显示你必须要指定这个

其次如果还有其他信息,因为是xml,所以 & 参数连接符需要转义,xml中&是作为实体存在的

mysql://localhost:3306/solr?characterEncoding=utf-8&amp;serverTimezone=UTC

使用solr批量导入mysql数据库,以及Unable to read: dataimport.properties等坑的更多相关文章

  1. SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库

    SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库  /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...

  2. Weka里如何将arff文件或csv文件批量导入MySQL数据库(六)

    这里不多说,直接上干货! 前提博客是 Weka中数据挖掘与机器学习系列之数据格式ARFF和CSV文件格式之间的转换(四) 1.将arff文件批量导入MySQL数据库 我在这里,arff文件以Weka安 ...

  3. 我与solr(二)--导入mysql数据库

    关于solr的搭建详见上一篇的随笔. 步骤1: 在webapps中solrhome下新建一个文件夹名字叫做mynode(名字不固定,可以随便取,但是这个名字在后面的配置中会有所关联.)然后在mynod ...

  4. Java实现数据批量导入mysql数据库

    本文完全照搬别人的. 原文标题:Java实现数据批量导入数据库(优化速度-2种方法) 原文地址:https://blog.csdn.net/qy20115549/article/details/526 ...

  5. 对大数据的批量导入MySQL数据库

    自己的库里有索引在用insert导入数据时会变慢很多 使用事务+批量导入 可以配置使用spring+mybatis整合的方式关闭自动提交事务(地址),选择批量导入每一百条导入使用list存储值传入到m ...

  6. sql文件批量导入mysql数据库

    有一百多个sql文件肿么破?一行一行地导入数据库肯定是极其愚蠢的做法,但是我差点就这么做了... 网上首先找到的方法是:写一个xxx.sql文件,里边每一行都是source *.sql ...,之后再 ...

  7. 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更新索引

    什么是solr solr是基于Lucene的全文搜索服务器,对Lucene进行了扩展优化. 准备工作 首先,去下载以下软件包: JDK8:jdk-8u60-linux-x64.tar.gz TOMCA ...

  8. xlrd(excel导入mysql数据库)

    一.xlrd模块: python 对 excel 文件进行读操作 1.下载xlrd 并安装 http://pypi.python.org/pypi/xlrd wget https://pypi.pyt ...

  9. (转) PowerDesigner逆向工程导入MYSQL数据库总结

    PowerDesigner逆向工程导入MySQL数据库总结 由于日常数据建模经常使用PowerDesigner,使用逆向工程能更加快速的生成模型提高效率,所以总结使用如下: 1.      安装MYS ...

随机推荐

  1. Qt——用于表格QTableView的模型

    如果想使用表格来呈现数据,Qt提供了一个方便的部件QTableWidget,但是直接用它实现一些功能可能比较困难.这里将介绍一种强大.灵活的方式来操作表格. 一.模型/视图架构 在这个架构中,模型用于 ...

  2. linux内核分析 第六周读书笔记

    第三章 进程管理 3.1 进程 进程:处于执行期的程序 线程是在进程活动中的对象:内核调度的对象是线程而不是进程,在Linux系统中,并不区分线程和进程 在现代操作系统中, 进程提供两种虚拟机制:虚拟 ...

  3. debian修改默认编辑器

    刚才在一台机器上打开 crontab -e,跳出来的编辑器是nano,太难使... 在debian下是使用 update-alternatives 命令修改默认编辑器. 先查看一下使用帮助 # upd ...

  4. tp 用group去重

    $baseGoodIds_arr = [1,2,3,4,5,6,7,8,9];$relate_gimgs = D('GoodsImages')->where(['good_id' => [ ...

  5. https 协议信息查看

    https://www.ssllabs.com/ssltest/」—————————

  6. python的tuple()元组数据类型的使用方法以及案例

    一.元组的概念介绍 1.元组是列表的二次加工 列表可以被修改 列表的类型 list li = [1,2,3,4,5,6] 2.元组的元素不可被修改,不能被增加或者删除,(只是针对元组的一级元素是不可以 ...

  7. Ansible11:变量详解

    目录 简单说明 一.在Inventory中定义变量 二.在Playbook中定义变量 1.通过vars关键字定义 2.通过vars_files关键字引入变量文件 3.通过vars_prompt来实现人 ...

  8. P2787 语文1(chin1)- 理理思维

    P2787 语文1(chin1)- 理理思维 1.获取第x到第y个字符中字母k出现了多少次 2.将第x到第y个字符全部赋值为字母k 3.将第x到第y个字符按照A-Z的顺序排序 读字符串我再单个单个读我 ...

  9. Docker 基础知识

    Docker Docker 是什么 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是 ...

  10. numpy二进制转换和范围缩放

    numpy二进制转换和范围缩放 觉得有用的话,欢迎一起讨论相互学习~Follow Me 一维二进制转换 import numpy as np # 一维二进制数组转换 a=np.array([0,1,1 ...