solr7.4创建core,导入MySQL数据,中文分词
#solr版本:7.4.0
一、新建Core
进入安装目录下得server/solr/,创建一个文件夹,如:new_core
拷贝server/solr/configsets/_default/conf/下的solrconfig.xml、protwords.txt、synonyms.txt、stopwords.txt文件和lang文件夹,到刚刚创建的new_core文件夹下
拷贝server/solr/configsets/_default/conf/下的schema.xml文件到刚刚创建的new_core文件夹下,将其重命名为schema.xml
进入solr页面选择Core Admin,设置好名字还有刚才新建的dir,Add Core

- 然后在core selector 就能看到刚才新建的core 了。
 

二、导入MySQL数据
- 打开刚添加的solrconfig.xml文件 vi server/solr/new_core/solrconfig.xml,查找一下requestHandler标签,在标签同级下加入导入数据的配置
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler> - new_core下新增db-data-config.xml文件(样例在安装目录example/example-DIH/solr/db/conf/下有),并添加如下配置:
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_name" user="root" password="" />
<document>
<entity name="product"
query="select product_id as id,title from table_name"
deltaImportQuery="select product_id as id,title from table_name where PRODUCT_ID='${dih.delta.id}'"
deltaQuery="select product_id as id from table_name where add_time > '${dataimporter.last_index_time}'">
</entity>
</document>
</dataConfig> - 下载mysql-connector-java驱动 https://dev.mysql.com/downloads/connector/j/
解压mysql-connector-java-(xxx).jar到安装目录下的server/solr-webapp/webapp/WEB-INF/lib - 在页面上选择Dataimport应该有了

 - 在Schema上添加字段,如title(要存在query属性的sql语句能查出来的那些字段当中)


 - 在Dataimport 上执行导入,可以看到已经新增了4条记录了

然后在query上查看导入结果
 
三、增量导入MySQL数据
- 导入数据不可能每次全量导入,新增的数据只要增量导入就好,检查db-data-config.xml配置,确保有deltaImportQuery, deltaQuery两项
last_index_time会保存在这个core的Instance目录下的conf/dataimport.properties文件
 - 现在我在数据表中再插入几条数据

 - 这次我们在页面选择delta-import执行一下看看

 - 再去看下结果,也成功导入

5.这是细心的人会发现dataimport.properties记录的是UTC时间,而数据表中用的是中国时间,要怎么让它们一致呢?
这里提供一个解决办法,利用sql语句来转换时区:
修改deltaQuerySELECT product_id AS id FROM table_name WHERE add_time > '${dataimporter.last_index_time}'改为
SELECT product_id AS id FROM table_name WHERE add_time > CONVERT_TZ('${dataimporter.last_index_time}', '+00:00', '+08:00') 
四、中文分词
- 拷贝分词jar到指定目录server/solr-webapp/webapp/WEB-INF/lib/
cp contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.4.0.jar server/solr-webapp/webapp/WEB-INF/lib/ - 编辑schema文件 vi server/solr/new_core/conf/managed-schema
添加:<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>把title改为text_cn类型
 - 重启solr,title已经改为text_cn,但是还没分词效果

 - 在dataimport选择clean再full-import一次,重新导入数据,再回到字段查看一下Term Info ,这次分词成功了

 
转载于:https://blog.51cto.com/13956067/2170843
solr7.4创建core,导入MySQL数据,中文分词的更多相关文章
- 在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器
		
最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程. 版本信息:solr版本6.2.0+tomcat8+jdk1.8 推荐阅读:so ...
 - Solr7.1---数据库导入并建立中文分词器
		
这里只是告诉你如何导入,生产环境不要这样部署你的solr服务. 首先修改solrConfig.xml文件 备份_default文件夹 修改solrconfig.xml 加入如下内容 官方示例:< ...
 - [转]mysql导入导出数据中文乱码解决方法小结
		
本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...
 - Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel
		
Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...
 - Sqoop导入mysql数据到Hbase
		
sqoop import --driver com.mysql.jdbc.Driver --connect "jdbc:mysql://11.143.18.29:3306/db_1" ...
 - Solr 创建core 从MySql数据库中导入数据
		
一.创建数据表和数据 在MySql数据中创建mysolrInfo表, 创建字段 id 主键,自动增加 pname :姓名 age :年龄 addtime :增加时间 增加几条数据 二.创建core 当 ...
 - mysql导入导出数据中文乱码解决方法小结
		
linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqld ...
 - Solr-5.3.1 dataimport 导入mysql数据
		
最近需要计算制造业领域大词表每个词的idf,词表里一共九十多万个词,语料一共三百七十多万篇分词后文献.最开始尝试用程序词表循环套语料循环得到每个词的idf,后来又尝试把语料存入mysql然后建立全文索 ...
 - HeidiSQL工具导出导入MySQL数据
		
有时候,为了数据方便导出导入SQL,我们可以借助一定的工具,方便我们队数据库的移植,可以达到事半功倍的效果.在这里,就给大家简单的介绍一款能方便导出或者导入MySQL的数据. ①首先,选择你要导出的数 ...
 
随机推荐
- 测试老司机都在用的表白神器你会吗?-Fiddler之AutoResponse线上调试
			
一.Fiddler在线调试功能和表白神器介绍  在以往的工作中,线上有bug,就需要把文件弄到本地来改,但经常会碰见本地环境又和线上不一样,导致调试困难,闭着眼睛改好之后传到线上去看对不对,不对的话 ...
 - 家庭版记账本app开发完成
			
经过这几天关于android的相关学习,对于家庭版记账本app以及开发结束. 实现的功能为:用户的注册.登录.添加支出账单.添加收入账单.显示所有的该用户的账单情况(收入和支出).生产图表(直观的显示 ...
 - javascript入门 之 zTree(十三 移动/复制事件)
			
<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - copyNode / moveNode</T ...
 - 3.K均值算法
			
一.概念 K-means中心思想:事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新 ...
 - coding++:漫画版-了解什么是分布式事务?
			
————— 第二天 ————— ———————————— 假如没有分布式事务: 在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子: 上图中包含了库存 ...
 - thymeleaf的特殊属性赋值
			
在用thymeleaf时,遇到特殊属性不知道该怎么解决如下: 问题1:循环时,遇到特殊的属性,不知道怎么赋值 如:cate-id="" ,fid=""; 使用t ...
 - Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统
			
Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统 作者: 深蓝色右手 来源: 博客园 发布时间: 2011-04-19 11:18 阅读: 1282 次 推荐: 0 ...
 - 数据结构和算法(Golang实现)(22)排序算法-希尔排序
			
希尔排序 1959 年一个叫Donald L. Shell (March 1, 1924 – November 2, 2015)的美国人在Communications of the ACM 国际计算机 ...
 - webWMS开发过程记录(五)- 详细设计之系统界面框架设计
			
界面区域划分 使用frameset分了上中下三个区域 上:显示系统名称和用户信息,以及一些提示信息(需通过Ajax定时更新提示信息),显示高度固定 中:再次使用frameset分成左右区域 左:显示导 ...
 - Netty 中的异步编程 Future 和 Promise
			
Netty 中大量 I/O 操作都是异步执行,本篇博文来聊聊 Netty 中的异步编程. Java Future 提供的异步模型 JDK 5 引入了 Future 模式.Future 接口是 Java ...