上一次分享了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整合的更多相关文章

  1. Solr系列一:Solr与Tomcat的整合

    第一次尝试着去写一个系列的教程,希望自己能坚持下去,也希望自己能够通过博客的编写来加深自己对solr搜索的理解. Solr与Tomcat的整合网上有很多教程,我就以我的整合为例来讲述一下我的整合过程, ...

  2. 性能测试二十六:环境部署之Mysql+Redis+Tomcat环境整合

    系统中使用了缓存+数据库,通用读取数据规则1.先从缓存读数据,如果有,直接返回数据:2.如果没有,去数据库中读,然后再插入到缓存中,再返回数据 Mysql+Redis+Tomcat环境整合 1.修改P ...

  3. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一.

    在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用.注: 本文属于原创文章, 如若转载,请注明出处, 谢谢.关于设置I ...

  4. Solr与MySQL查询性能对比

    本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608     Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...

  5. [Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.

    今天 不知自己装的centos 出现了什么问题, 一直卡在 启动界面, 找了半天没找见原因(最后时刻还是发现原因, 只因自己手欠一怒之下将centos删除了, 而且选择的是在本地磁盘也删除. ..让我 ...

  6. Apache与Tomcat的整合

    一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...

  7. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...

  8. java web(一) 使用sql标签库+tomcat+mysql手动创建一个jsp练习总结

    2016-09-0111:06:53                                     使用sql标签库+tomcat+mysql手动创建一个jsp 1. 1.1安装tomcat ...

  9. linux 下 jdk+tomcat+mysql 的 jsp 环境搭建

    JDK 在 linux 下安装 1.          把安装文件放在 /opt 下,并执行 [root@localhost opt]# ./jdk-1_5_0_06-linux-i586.bin 并 ...

随机推荐

  1. cpu缓存java性能问题初探

    在内存与cpu寄存器之间,还有一块区域叫做cpu高速缓存,即我们常常说的cache. cache分为L1.L2.L3三级缓存,速度递减,离cpu越来越远,L1.L2每个内核自己都有,L3是每个插槽上的 ...

  2. “全栈2019”Java多线程第二十六章:同步方法生产者与消费者线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  3. django 视图中执行原生的 sql 查询语句

    可以使用objects的raw()方法执行原生的sql语句,进行对数据库的查询操作,raw()方法只能执行查询语句 query_set = your_model.objects.raw("s ...

  4. Python replace方法的使用

    在Python str 中, 有一个很方便的查找替换的函数 replace() my_str = "lowmanmana" new_str = my_str.replace(&qu ...

  5. [bug] VUE 的 template 中使用 ES6 语法导致页面空白

    如果你在 template 中,使用了 es6 及以上的语法,那么,在部分ios.安卓.微信浏览器中,打开页面后显示一片空白内容.如下: <ul id="example-1" ...

  6. 学习Python中的集合

    创建集合 使用工厂方法 set()和 frozenset(): >>> s = set('cheeseshop') >>> s set(['c', 'e', 'h' ...

  7. (转)C# Enum,Int,String的互相转换 枚举转换--非常实用

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...

  8. 浅谈Express的put与del

    假设有一个景区价格列表页,显示当前的价目表. 价目表存放在express应用的数组中: var tours = [ {id:0,name:'Hood River',price:99.99}, {id: ...

  9. iOS自动布局框架-Masonry详解

    首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout     从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...

  10. swift 3.0 正则表达式查找/替换字符

    1.什么是正则表达式 正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符 ...