天天看点

solr6.6 配置mysql数据源

最近业务上需要开始使用solr,从官网上下载的6.6发现网上关于6.6的资料比较少,甚至solr  in action 中也没有对应的示例,所以一路踩坑终于成功

分享如下:

1、包依赖  (问题 不知道放什么包或 找不到对应版本的包)

                mysql-connector-java-5.1.43-bin.jar(http://download.csdn.net/download/nnmeo/9956245  也可以这mysql官网下载)

                solr-dataimporthandler-6.6.0.jar  (csdn下载 在本地solr/dist下一般也可以找到)

                solr-dataimporthandler-extras-6.6.0.jar (csdn下载 在本地solr/dist下一般可以找到) 如果找不到 可以用 find 命令 搜索一下(find ./ -name '*dataimport*')

                把这三个包统统放到 solr/server/solr-webapp/webapp/WEB-INF/lib 下

2、配置solrconf.xml   (如果你用的是cloud模式 找不到这个文件 只能在网页上配置,存储在zookpeer中 后面会讲)

增加一个requestHandler如下:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
      <lst name="defaults">
      <str name="config">data-config.xml</str>
      </lst>
  </requestHandler>
           

这里只是声明了会有一个dataimport 操作,数据详情配置在 同目录的data-config.xml中配置

 data-confi.xml  内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1/dbname" user="test"
 password="test" batchSize="-1"/>
    <document name="video">
        <entity name="video" pk="id" query="select id,name,level from video ">
            <field column="id" name="id" />
            <field column="name" name="name" />
            <field column="level" name="level" />
        </entity>
    </document>
</dataConfig>
           

solr中有一个很重要的概念 --文档:这个对于本例来说一行记录就是一个文档。

上面的配置中 

<document name="video"> 

video是指实体名称 可以和表名一致

<field column="id" name="id" />column 为映射到solr中的名称(在manage-schema中会用到),name为mysql表中的字段的名称

3、配置manage-schema (solr6.6已经没有schema.xml,可以直接修改这个文件,也可以在网页上配置) 

     设置一个唯一key  <uniqueKey>id</uniqueKey>

    <field name="id" type="tlongs" multiValued="false" indexed="true" required="true" stored="true" />

     并且把这个key的树形设置成  multiValued="false" indexed="true" required="true" stored="true" 这很重要,uniquekey 会保证你重复建索引时 数据不会重复

至此 重启solr 在页面中找到对应的core点击dataimport 并执行 execute 查看logging,如果没有wanning 就ok了

注:配置文件的位置在 core下面而不是在安装目录下

如在使用中遇到问题欢迎留言交流!!

继续阅读