solr连接数据库查询
参考链接:http://www.cnblogs.com/xbgfy/articles/5623501.html
接下来进行solr连接数据库,生成索引,以及查询方法。
数据库建表语句:
CREATE TABLE `test_person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL COMMENT '姓名',
`description` varchar(500) DEFAULT NULL COMMENT '简介',
PRIMARY KEY (`id`)
);
insert into test_person(name,description) values('周星驰','香港著名喜剧演员');
insert into test_person(name,description) values('周润发','香港著名演员');
insert into test_person(name,description) values('周节能','台湾著名歌手,号称音乐天王');
insert into test_person(name,description) values('成龙','香港著名动作演员');
insert into test_person(name,description) values('山本一木','日本鬼子');
insert into test_person(name,description) values('仓木麻衣','日本歌手');- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
1、将数据库驱动包放入solr项目工程中(我用的mysql,使用jar包mysql-connector-java-5.1.18-bin.jar);
2、在自己创建的core实例的conf文件中进行数据配置(我的是D:\testsolr\solr_home\solr\my_core\conf\solr-data-config.xml),覆盖内容如下(数据库表自己根据配置自己建):
(PS1:在solr7.1.0中并没有solr-data-config.xml文件,需要自己手动创建,然后将内容复制到文件中)
(PS2:下面的query语句,select * from test_person where name like '%${dataimporter.request.name}%' 经过测试,
这样查询不出内容,需要改为 select
* from test_person)
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="jhp123" />
<document name="messages">
<entity name="message" transformer="ClobTransformer" query="select * from test_person where name like '%${dataimporter.request.name}%'">
<field column="id" name="id" />
<field column="name" name="name" />
<field column="description" name="description" />
</entity>
</document>
</dataConfig>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
url=”jdbc:mysql://localhost:3306/test” user=”root” password=”123” 这里配置了 mysql 的连接路径 , 用户名 , 密码
<field column="name" name="name" /> 这里配置的是数据库里要索引的字段, 注意name是在分词的第4 步配置的,同时只有这样匹配的字段最终solr才会查询显示出来,所以需要用到的字段必须在该文件中<field column="***" name="***" />配置才可以;- 1
3、在D:\testsolr\solr_home\solr\my_core\conf\schema.xml文件中添加如下字段信息:
<field name="name" type="textMaxWord" indexed="true" stored="true" multiValued="true" />
<field name="description" type="textMaxWord" indexed="true" stored="true" multiValued="true" />- 1
- 2
注意这里的配置是数据库里需要用到的字段,在分词时这两个字段已配置,故此步可省略。其中id字段已存。
4、在 D:\testsolr\solr_home\solr\my_core\conf 目录下的 solrconfig.xml 文件里 , 添加如下代码 :
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">D:/testsolr/solr_home/solr/my_core/conf/solr-data-config.xml</str>
</lst>
</requestHandler>- 1
- 2
- 3
- 4
- 5
D:/testsolr/solr_home/solr/my_core/conf/solr-data-config.xml为上一步的配置文件地址;
5、把本地下载解压的 solr文件里dist 目录下的 solr-dataimporthandler.jar 和 solr-dataimporthandler-extras.jar 复制到Tomcat \webapps\solr\WEB-INF\lib 目录下;
6、如图打开solr,把数据库(其实也可以用 http/file 资源)中的记录放到索引中。现大概看下步骤:
7、测试查询:
智能推荐
python MySQLdb 连接数据库
python MySQLdb 连接数据库 引入并创建连接 如果上述过程没有发生错误,则代表连接数据库成功。在这里我们可以下载安装Navicat(一款简单可视化的数据库软件)检验我们操作的正确性。一些基本的操作可以参照: 添加链接描述 本人本地数据库界面如下: 对student表进行操作 建立游标和sql操作语句 尝试进行查询,修改,增加,删除操作 在前面我们已经建立和游标和sql操作语句,现在逐条...
连接数据库测试
在环境配置之后安装pymysql(3.x版本要求), 测试没问题就可以进行数据的相关操作了,先看下数据库版本,代码如下: 现在用一个test数据库,里面有一个users表,数据如下, 结果如下: 成功获取到了第一条数据。 删除一条数据,注意事物的使用,如果不提交的话,不能够进行删,改,加操作的 结果如下: 为了明显看出sql执行失败,进行回滚,此处故意将添加时的...
Python+Selenium+Autolt选择本地文件上传至网站
如果网站有上传文件的功能,selenium不提供对本地元素的定位,如何使用python选择本地文件进行上传呢 可以使用Autolt工具上传文件: 1、下载网址:https://www.autoitscript.com/site/autoit/downloads/ 2、点击“Downlad ZIP”下载 3、解压缩下载的ZIP文件 4、打开脚本编辑器文件夹,有一个SciTE....
数据结构系列之一-线性表
数据结构系列--线性表 慧子和她的3D 慧子和她的3D 暑期工作搞不下去,不如趁着现在整块时间搞编程。学习资料书《大话数据结构》,前面两章的铺垫感性知识,看看过,从第三章开始正餐。 01 — 线性表 线性表:零个或多个数据元素的有限序列。用数学语言表达: ...
Linux系统的远程操作练习
目录 一、将虚拟机Ubuntu系统的网络连接设置为“桥接模式”,并配置Ubuntu的IP、网关参数 二、在win10系统下用putty登录ubuntu系统 三、VNC server VNC viewer 思考 一、将虚拟机Ubuntu系统的网络连接设置为“桥接模式”,并配置Ubuntu的IP、网关参数 1.打开虚拟机,进入设置 点击网络适配器,选择桥...
猜你喜欢
ORACLE----TimeStamp(时间戳)自动更新
之前对id的自增长进行了设置,原以为时间戳的更新也类似,使用序列之类的,但最终发现跟序列没半毛钱关系。触发器是肯定要用的,但编写脚本也是需要的。 (1)创建触发器 图2中,我们要选择事件(即例子中的INSERT,UPDATE),触发时间(即INSERT,UPDATE事件的前或后,例子中是before),列(例子中为MODIFIED_DATE,为TimeStamp类型),新旧值(为系统默认值OLD和...
LeetCode(剑指offer-tree)-面试题26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 树的遍历方式为:前序遍历 给定的树 A: 给定的树 B: 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示例 1: 示例 2: 限制: 题源链接:https://leetcode-cn.com/problems/shu-de-z...
大数据笔记14:Zebra项目分析与实施
第14天——Zebra项目分析与实施 第一部分 Zebra项目概述 一、Zebra项目介绍 二、日志数据结构分析 三、数据以| 分割后,每个数据项的含义 四、Zebra项目整体架构 (一)技术架构 (二)工程架构 五、Zebra业务说明 六、Zebra项目设计思想 第二部分 Zebra项目实施过程 一、创建Maven项目ZebraProject 二、zebra_jobtra...
solr
概述 Solr是基于Lucene(Solr版本基本也是随着Lucene走)开发的一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.(网上有个solr教...
