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、测试查询: 
这里写图片描述 

 

版权声明:本文为woshinidabinge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/woshinidabinge/article/details/78465797

智能推荐

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和...

数字图像处理:对数变换

设置窗口大小的函数: namedWindow("窗口名", 0); resizeWindow("窗口名", width, height);...

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教...