solr连接数据库查询

来源:互联网 发布:分析家软件2011版 编辑:程序博客网 时间:2024/06/01 07:27

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

 

原创粉丝点击