solr5.5版本 连接mysql数据库

solr 连接数据 需要两个jar

一个是mysql 连接数据库的jar  (mysql数据库jar 自行下载  这里不过多细说)

另一个是solr-dataimporthandler-5.5.0 jar 包

进入 solr-5.5.0/dist 文件夹中 将圈中jar 进行复制


将mysql链接数据库jar 和上一步复制的jar 粘贴到 apache-tomcat-7.0.47\webapps\solr\WEB-INF\lib 文件夹 如下图:


接下来创建数据库表 sql语句 如下

create table `user` (
  `id` int unsigned not null auto_increment comment '主键编号',
  `name` varchar(64) not null comment '姓名',
  `age` int(10) not null default 0 comment '年龄',
  primary key (`id`))
engine = innodb
auto_increment = 1
default character set = utf8
comment = '用户表';
创建成功并添加数据 如下图


数据库和jar 都已经准备好了 下面我们需要添加一些配置文件信息

在solrHome中的core核心配置文件的conf中solrconf.xml文件中添加如下信息:

    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">     
              <lst name="defaults">     
                   <str name="config">data-config.xml</str>     
              </lst>     
    </requestHandler>  
并在conf文件夹下创建文件data-config.xml    (注solrconf.xml和data-conf.xml是同一目录)

并在data-conf.xml中添加如下内容

<dataConfig>  
   <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"     
    url="jdbc:mysql://127.0.0.1/test" user="root" password="password"    />  
    <document name="user">  
       <entity name="user" pk="id"  
                 query="select * from user"  
                 deltaImportQuery="select * from user where id ='${dih.delta.id}'"  
                 deltaQuery="select id from user where timestamp > '${dih.last_index_time}'">  
           
       </entity>  
    </document>  
</dataConfig>


url: 是连接数据库的路径

user:数据库用户名

password:数据库密码

name:是数据库表的名称


接下来需要在schema.xml文件中需要添加字段

(schema.xml文件需要将同目录下的 managed-schema 改名而来)

然后编辑/solr-5.5.0/server/solr/core1/conf/solrconfig.xml,将以下代码注释掉:
<schemaFactory class="ManagedIndexSchemaFactory">
  <bool name="mutable">true</bool>
 <str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>


 <field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> 
 <field name="name" type="string" indexed="true" stored="true"/>     
 <field name="age" type="int" indexed="true" stored="true"/>

schema.xml中 id 默认是string  我这里进行修改为int类型

之后保存 启动tomcat

在页面进入web后台管理页面 成功 如下


在execute的时候可能时间会比较长 需要手动 refresh status 一下

查询下是否连接成功


数据库添加的数据已经展现出来了 


版权声明:本文为pizi995原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。