solr + tomcat + mysql整合
上一次分享了solr+tomcat的整合
学习就是要一步一步的进行才有趣
所以这次给大家分享solr+tomcat+mysql
一、准备工作
1.一张带数据的数据库表(我用的是这张叫merchant的表)

2.导jar包
需要把solr-5.5.4\dist目录下的solr-dataimporthandler-5.5.4.jar复制到tomcat\webapps\solr\WEB-INF\lib
目录下如图


还需要导一个数据库连接的jar包到tomcat\webapps\solr\WEB-INF\lib

3.core配置(core具体创建不描述了虽然会的不多但是还是懒=。=)
默认dataImport功能在Solr5中是禁用的,需要在solrconfig.xml中添加如下配置开启数据导入功能:
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
这个地址可以是绝对路径。
将core中的solr-data-config.xml修改成data-config.xml


需要在里面敲的代码如下
<dataConfig>
<dataSource name="bfy" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://39.108.147.253:3306/bfy" user="root" password="199610liu"/> <document>
<entity pk="MID" dataSource="bfy" name="merchant"
query="select * from merchant"
deltaImportQuery="select * from merchant where id ='${dih.delta.id}'"
deltaQuery="select id from merchant where timestamp > '${dih.last_index_time}'">
<field column="MID" name="id"/>
<field column="mName" name="mName"/>
<field column="northernLatitude" name="northernLatitude"/>
<field column="eastLongitude" name="eastLongitude"/>
</entity>
</document>
</dataConfig>
这里解释下以上代码
dataSource里边就是我们经常配置的数据源
entity中要注意的就是查询后面的表名要修改
field是你表中的数据可以只选需要的
紧接着我们需要打开schema.xml配置文件对域名称、域类型、是否索引、是否存储、是否分词等信息进行配置,
如图:
<field name="mName" type="text_ik" indexed="true" stored="true" omitNorms="true"/>
<field name="MID" type="int" indexed="true" stored="true"/>
<field name="northernLatitude" type="string" indexed="true" stored="true"/>
<field name="eastLongitude" type="string" indexed="true" stored="true"/>
可以看见代码中有一个 text_ik 这个值一个分词器
这时我们需要引入ik分词器
这里需要引如下2个jar包到tomcat\webapps\solr\WEB-INF\lib下

<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
这样连接数据库的配置都配好了
再去启动tomcat进入http://localhost:8000/solr/admin.html#/ 进入如下位置可以见到效果


页面上的内容介绍
full-import:全量导入,它会覆盖原有的索引
delta-import:即增量导入,它会在原有索引的基础上追加
下面的几个多选框含义解释如下:
verbose:这个选项设为true的话,会打印导入的一些中间过程的详细信息,有利于调试以及了解内部操作细节
clean:表示是否在导入数据创建索引之前先清空掉原有的索引
commit:表示是否立即提交索引
optimize:表示是否优化索引
debug: 表示是否开启调试模式
选中merchant后点蓝色的那个按钮

上面的页面是正在创建索引,但是这个页面不会停太久如果很久没有反应就去tomcat那边看是否有报错日志
成功的话会有如下界面

切换到overview菜单,我们会看到:

Num Docs会有数据
切换到Query菜单,对我们刚插入的索引进行查询测试,如图:

numFound是找到的数据条数
附上我使用的ik分词器下载链接 https://pan.baidu.com/s/1amtFlufyTEzMLcSnbOr7vA
这里整合就结束了
如果有不足和错误的地方还请各位大佬指点
谢谢!!!
2018-09-20 17:35:52
solr + tomcat + mysql整合的更多相关文章
- Solr系列一:Solr与Tomcat的整合
第一次尝试着去写一个系列的教程,希望自己能坚持下去,也希望自己能够通过博客的编写来加深自己对solr搜索的理解. Solr与Tomcat的整合网上有很多教程,我就以我的整合为例来讲述一下我的整合过程, ...
- 性能测试二十六:环境部署之Mysql+Redis+Tomcat环境整合
系统中使用了缓存+数据库,通用读取数据规则1.先从缓存读数据,如果有,直接返回数据:2.如果没有,去数据库中读,然后再插入到缓存中,再返回数据 Mysql+Redis+Tomcat环境整合 1.修改P ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一.
在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用.注: 本文属于原创文章, 如若转载,请注明出处, 谢谢.关于设置I ...
- Solr与MySQL查询性能对比
本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608 Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...
- [Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.
今天 不知自己装的centos 出现了什么问题, 一直卡在 启动界面, 找了半天没找见原因(最后时刻还是发现原因, 只因自己手欠一怒之下将centos删除了, 而且选择的是在本地磁盘也删除. ..让我 ...
- Apache与Tomcat的整合
一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
- java web(一) 使用sql标签库+tomcat+mysql手动创建一个jsp练习总结
2016-09-0111:06:53 使用sql标签库+tomcat+mysql手动创建一个jsp 1. 1.1安装tomcat ...
- linux 下 jdk+tomcat+mysql 的 jsp 环境搭建
JDK 在 linux 下安装 1. 把安装文件放在 /opt 下,并执行 [root@localhost opt]# ./jdk-1_5_0_06-linux-i586.bin 并 ...
随机推荐
- CSS2.1SPEC:视觉格式化模型之包含块
原汁原味的才是最有味道的,在阅读CSS标准时对这一点的体会更加深刻了,阅读文档后的一大感觉就是很多看上去理所应当的样式表现也都有了对应的支持机制.本文首先从包含块写起,一方面总结标准中相应的阐述,并且 ...
- Windows下TensorFlow安装指南(图文版)
随着深度学习概念火起来,TensorFlow也跟着成为业界流行的深度学习框架.它采用CPU+GPU的并行计算模式,使得神经网络可以有效的并行计算,从以前的三层网络到现在的深层网络,深度学习+tenso ...
- 克隆linux虚拟机
背景:有时候,我们在用虚拟机的时候会用到多个进行使用.重新安装会花费大量的时间,此时,我们可以通过vmware虚拟机自带的功能快速克隆出完全相同的系统. 前提:被克隆的虚拟机系统要处于关闭状态 步骤: ...
- Jira API传字符串的换行问题 (文本编辑器使用)
因为jira的文本编辑器自动进行了2次转义,如果从API过来的文本换行需要手动处理.吐血. net里: desc = desc.Replace("\n", "\\n&qu ...
- Python小白学习之路(五)—【类和对象】【列表】【列表相关功能】
类和对象 (简单的了解一下这个概念,初步有个印象,这个概念很重要,后面会着重讲) 类:具有相同属性和方法的对象的集合: 对象:万物皆对象: 概念很抽象(每当我看不到概念的时候,我就会通过举例来理解) ...
- python操作oracle数据库-查询
python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...
- python代码的那些设计
一.Django的ORM 1.类QuerySet (django) :QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作.只要你查询的时候才真正的操作数据库. 2. ...
- (转)Jupyter notebook入门教程(上,下)
https://blog.csdn.net/red_stone1/article/details/72858962------上 https://blog.csdn.net/red_stone1/ar ...
- 使用seek()方法报错:“io.UnsupportedOperation: can't do nonzero cur-relative seeks”错误的原因
在使用seek()函数时,有时候会报错为 “io.UnsupportedOperation: can't do nonzero cur-relative seeks”,代码如下: >>& ...
- EF 一对一、一对多、多对多配置语句小记
数据库实体间的关系无非有这么几种:一对一.一对多.多对多,这些关系在EF框架中分别有不同的创建方式: 1.在"Database First"模式中,这些关系通过SQL语句的方式建立 ...